0 Пользователей и 1 Гость просматривают эту тему.
  • 9 Ответов
  • 4481 Просмотров
*

Draco

  • Осваиваюсь на форуме
  • 18
  • 6 / 0
  • Дракон
Приветствую всех.

Не подскажете, может кто-то уже нашел решение...

Начиная с 5-й беты Firefox 4, а также в IE9 и в Chrome 7 (т.е. в главных новых браузерах) прекращает работать модуль YooDrawer из комплекта YooTools. Причем все остальные модули прекрасно работают. Проблема не в конфликте с другими скриптами, поскольку YooDrawer не работает даже на демо-сайте самого разработчика, YooTheme.
Дебаггер в FireFox-е выдает ошибку "item.addClass is not a function", а в 7-м Хроме -

Код
Uncaught TypeError: Object #<an Object> has no method 'addClass'
YOOdrawer.Class.itemFx:1
returnsmootools.js:21
(anonymous function)mootools.js:21
(anonymous function)mootools.js:50
Element.Methods.Events.fireEventmootools.js:50
Element.Events.Abstract.mouseenter.map

Судя по всему, какое-то изменение в самых последних версиях браузеров препятствует считыванию ID элементов. Я пытался найти ошибку полтора дня, но так и не сумел - скрипт без проблем работает в любом браузере вплоть до Firefox 4 Бета-4, и вообще не работает в Бете-5. :( ChangeLog на сайте Мозиллы не помог.  Замена li на div не помогла. Ручное присваивание ID не помогло. Может, кто-то уже нашел проблему?

С уважением, Драко.
http://www.drakia.com
*

BoBCP

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Тоже самое! Подскажите как решить проблему!
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Ну попробуй item.set('class', 'className');
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

Draco

  • Осваиваюсь на форуме
  • 18
  • 6 / 0
  • Дракон
Ну попробуй item.set('class', 'className');

То же самое :( 22:25:50:906: item.set is not a function @ http://www.drakia.com/modules/mod_yoo_drawer/mod_yoo_drawer.js Строка: 33

Судя по всему проблема в том, что сама переменная item не получает никакого значения - undefined. Но я не понимаю, почему. Я уже пробовал менять само название item  на другое, на случай если в новых браузерах item назвали некую системную переменную - не помогает.
*

Draco

  • Осваиваюсь на форуме
  • 18
  • 6 / 0
  • Дракон
Ха! Я был прав с самого начала - виной всему были названия переменных. На сайте Yootheme наконец-то исправили скрипт, и единственное отличие от старого - имена переменных.

Вот правильный код, им надо заменить содержимое mod_yoo_drawer.js  (аналогичная проблема есть и в YooSlider)

Код
/**
 * YOOdrawer Joomla! Module
 *
 * @author    yootheme.com
 * @copyright Copyright (C) 2007 YOOtheme Ltd. & Co. KG. All rights reserved.
 * @license GNU/GPL
 */
var YOOdrawer = new Class({
    initialize: function (b, d, g) {
        this.setOptions({
            layout: "vertical",
            itemstyle: "top",
            shiftSize: 50,
            transition: Fx.Transitions.Expo.easeOut
        }, g);
        this.wrapper = $(b);
        this.items = $$(d);
        this.fx = new Fx.Elements(this.items, {
            wait: false,
            duration: 600,
            transition: this.options.transition
        });
        if (this.options.layout != "vertical") this.options.itemstyle = "left";
        var e = this,
            f = {};
        this.items.each(function (a, c) {
            f[c] = a.getStyle(this.options.itemstyle).toInt();
            a.addEvent("mouseenter", function () {
                e.itemFx(f, a, c)
            })
        }, this)
    },
    itemFx: function (b, d, g) {
        var e = {};
        d.addClass("active");
        this.items.each(function (f, a) {
            var c = f.getStyle(this.options.itemstyle).toInt();
            if (a >= g) {
                if (c != b[a]) e[a] = this.itemStyle(c, b[a])
            } else if (c != b[a] - this.options.shiftSize) e[a] = this.itemStyle(c, b[a] - this.options.shiftSize);
            a != g && f.removeClass("active")
        }, this);
        this.fx.start(e)
    },
    itemStyle: function (b, d) {
        return this.options.layout == "vertical" ? {
            top: [b, d]
        } : {
            left: [b, d]
        }
    }
});
YOOdrawer.implement(new Options);
*

BoBCP

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Ха! Я был прав с самого начала - виной всему были названия переменных. На сайте Yootheme наконец-то исправили скрипт, и единственное отличие от старого - имена переменных.

Вот правильный код, им надо заменить содержимое mod_yoo_drawer.js  (аналогичная проблема есть и в YooSlider)

Код
/**
 * YOOdrawer Joomla! Module
 *
 * @author    yootheme.com
 * @copyright Copyright (C) 2007 YOOtheme Ltd. & Co. KG. All rights reserved.
 * @license GNU/GPL
 */
var YOOdrawer = new Class({
    initialize: function (b, d, g) {
        this.setOptions({
            layout: "vertical",
            itemstyle: "top",
            shiftSize: 50,
            transition: Fx.Transitions.Expo.easeOut
        }, g);
        this.wrapper = $(b);
        this.items = $$(d);
        this.fx = new Fx.Elements(this.items, {
            wait: false,
            duration: 600,
            transition: this.options.transition
        });
        if (this.options.layout != "vertical") this.options.itemstyle = "left";
        var e = this,
            f = {};
        this.items.each(function (a, c) {
            f[c] = a.getStyle(this.options.itemstyle).toInt();
            a.addEvent("mouseenter", function () {
                e.itemFx(f, a, c)
            })
        }, this)
    },
    itemFx: function (b, d, g) {
        var e = {};
        d.addClass("active");
        this.items.each(function (f, a) {
            var c = f.getStyle(this.options.itemstyle).toInt();
            if (a >= g) {
                if (c != b[a]) e[a] = this.itemStyle(c, b[a])
            } else if (c != b[a] - this.options.shiftSize) e[a] = this.itemStyle(c, b[a] - this.options.shiftSize);
            a != g && f.removeClass("active")
        }, this);
        this.fx.start(e)
    },
    itemStyle: function (b, d) {
        return this.options.layout == "vertical" ? {
            top: [b, d]
        } : {
            left: [b, d]
        }
    }
});
YOOdrawer.implement(new Options);
Огромное спасибо!!

Не могли бы выложить аналогичный фикс для слайдера (mod_yoo_slider)? Заранее благодарен.
*

Draco

  • Осваиваюсь на форуме
  • 18
  • 6 / 0
  • Дракон
Не могли бы выложить аналогичный фикс для слайдера (mod_yoo_slider)? Заранее благодарен.

Без проблем :) Все что требуется - просто скопировать код с сайта YooTheme. Вот правильные версии:

Yoo_slider:
Код
/**
* YOOslider Joomla! Module
*
* @author    yootheme.com
* @copyright Copyright (C) 2007 YOOtheme Ltd. & Co. KG. All rights reserved.
* @license     GNU/GPL
*/
var YOOslider=new Class({initialize:function(a,b,c){this.setOptions({layout:"vertical",itemstyle:"height",sizeSmall:100,sizeNormal:150,sizeFull:200,transition:Fx.Transitions.Expo.easeOut},c);var e=this;this.wrapper=$(a);this.items=$$(b);this.fx=new Fx.Elements(this.items,{wait:false,duration:600,transition:this.options.transition});if(this.options.layout!="vertical")this.options.itemstyle="width";this.options.sizeSmall=Math.round(this.options.sizeNormal-(this.options.sizeFull-this.options.sizeNormal)/
(this.items.length-1));this.items.each(function(d,f){d.addEvent("mouseenter",function(){e.itemFx(d,f)})});this.wrapper.addEvent("mouseleave",this.wrapperFx.bind(this))},wrapperFx:function(){var a={};this.items.each(function(b,c){a[c]=this.itemStyle(b.getStyle(this.options.itemstyle).toInt(),this.options.sizeNormal);b.removeClass("active")},this);this.fx.start(a)},itemFx:function(a,b){var c={};c[b]=this.itemStyle(a.getStyle(this.options.itemstyle).toInt(),this.options.sizeFull);a.addClass("active");
this.items.each(function(e,d){if(b!=d){var f=e.getStyle(this.options.itemstyle).toInt();if(f!=this.options.sizeSmall)c[d]=this.itemStyle(f,this.options.sizeSmall);e.removeClass("active")}},this);this.fx.start(c)},itemStyle:function(a,b){return this.options.layout=="vertical"?{height:[a,b]}:{width:[a,b]}}});YOOslider.implement(new Options);

ZooSlider:
Код
/* Copyright (C) 2007 - 2010 YOOtheme GmbH, YOOtheme Proprietary Use License (http://www.yootheme.com/license) */

var YOOslider=new Class({initialize:function(a,b,c){this.setOptions({layout:"vertical",itemstyle:"height",sizeSmall:100,sizeNormal:150,sizeFull:200,transition:Fx.Transitions.Expo.easeOut},c);var e=this;this.wrapper=$(a);this.items=$$(b);this.fx=new Fx.Elements(this.items,{wait:false,duration:600,transition:this.options.transition});if(this.options.layout!="vertical")this.options.itemstyle="width";this.options.sizeSmall=Math.round(this.options.sizeNormal-(this.options.sizeFull-this.options.sizeNormal)/
(this.items.length-1));this.items.each(function(d,f){d.addEvent("mouseenter",function(){e.itemFx(d,f)})});this.wrapper.addEvent("mouseleave",this.wrapperFx.bind(this))},wrapperFx:function(){var a={};this.items.each(function(b,c){a[c]=this.itemStyle(b.getStyle(this.options.itemstyle).toInt(),this.options.sizeNormal);b.removeClass("active")},this);this.fx.start(a)},itemFx:function(a,b){var c={};c[b]=this.itemStyle(a.getStyle(this.options.itemstyle).toInt(),this.options.sizeFull);a.addClass("active");
this.items.each(function(e,d){if(b!=d){var f=e.getStyle(this.options.itemstyle).toInt();if(f!=this.options.sizeSmall)c[d]=this.itemStyle(f,this.options.sizeSmall);e.removeClass("active")}},this);this.fx.start(c)},itemStyle:function(a,b){return this.options.layout=="vertical"?{height:[a,b]}:{width:[a,b]}}});YOOslider.implement(new Options);

ZooDrawer:
Код
/* Copyright (C) 2007 - 2010 YOOtheme GmbH, YOOtheme Proprietary Use License (http://www.yootheme.com/license) */

var YOOdrawer=new Class({initialize:function(b,d,g){this.setOptions({layout:"vertical",itemstyle:"top",shiftSize:50,transition:Fx.Transitions.Expo.easeOut},g);this.wrapper=$(b);this.items=$$(d);this.fx=new Fx.Elements(this.items,{wait:false,duration:600,transition:this.options.transition});if(this.options.layout!="vertical")this.options.itemstyle="left";var e=this,f={};this.items.each(function(a,c){f[c]=a.getStyle(this.options.itemstyle).toInt();a.addEvent("mouseenter",function(){e.itemFx(f,a,c)})},
this)},itemFx:function(b,d,g){var e={};d.addClass("active");this.items.each(function(f,a){var c=f.getStyle(this.options.itemstyle).toInt();if(a>=g){if(c!=b[a])e[a]=this.itemStyle(c,b[a])}else if(c!=b[a]-this.options.shiftSize)e[a]=this.itemStyle(c,b[a]-this.options.shiftSize);a!=g&&f.removeClass("active")},this);this.fx.start(e)},itemStyle:function(b,d){return this.options.layout=="vertical"?{top:[b,d]}:{left:[b,d]}}});YOOdrawer.implement(new Options);
*

ba

  • Захожу иногда
  • 62
  • 2 / 0
Выложите пожалуйста аналогичные коды для модулей аккордеон и карусель
*

chipsed

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Цитировать
Выложите пожалуйста аналогичные коды для модулей аккордеон и карусель
Очень актуально, вы не нашли решение проблемы ?
Или может кто нибудь в курсе где код поменять ?
Плагин вставляется, но не скролится ! (yoocarousel), кстати аналоги тоже не работают ! TABS_MANAGER_GK3, mod_roktabs , mod_icetabs - все плагины работают, но только первый таб, остальные табы не активные, так же и на локальном серваке и на webсервере.
Помогите пожалуйста.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Universal ajax Live Search Search не работает без компонента "Поиск"?

Автор Maffo

Ответов: 0
Просмотров: 1373
Последний ответ 04.04.2022, 17:00:07
от Maffo
плагин SP Thumbnail не работает

Автор urist2009

Ответов: 0
Просмотров: 1815
Последний ответ 12.08.2017, 16:17:20
от urist2009
Resize product images не работает

Автор berest_01

Ответов: 3
Просмотров: 1103
Последний ответ 01.08.2017, 23:39:35
от Taatshi
Не работает Vina Insta Image Show

Автор zahar_92

Ответов: 0
Просмотров: 1580
Последний ответ 11.07.2017, 11:41:45
от zahar_92
Не работает модуль JFontSize

Автор ownell

Ответов: 0
Просмотров: 1110
Последний ответ 07.11.2016, 20:09:32
от ownell