Javascript переопределить проблему класса XML - PullRequest
0 голосов
/ 02 августа 2011

Вероятно, это базовый материал, но лучше учиться сейчас, чем позже.

Что я делаю: Я реализую галерею, которая получает XML, а затем создаю меня, используя некоторый код JavaScript.проблема, которую я пытался вызвать дважды gallery.init, например:

$(document).ready(function(){


    galleryXML.init({
        xmlPath : "data/gallery.xml",
        imgPath : "images",
        perView : 4,
        id: "#gallery1"
    });
    galleryXML.init({
        xmlPath : "data/gallery.xml",
        imgPath : "images",
        perView : 4,
        id: "#gallery"
    }); 
})

Я ожидал, что один будет в # gallery1, другой - в #gallery.Может кто-нибудь сказать мне, в чем проблема?

Остальная часть кода здесь нужно только скачать, распаковать и выполнить index.html (работает только в Firefox, не знаю, почему тоже)

Заранее спасибо.

ОБНОВЛЕНИЕ

Пока это минимальный пример, не уверен, хорошо ли представляют проблему.

http://jsfiddle.net/PSYCKIC/rpNab/2/ -> ОБНОВЛЕНО

Ответы [ 2 ]

1 голос
/ 04 августа 2011

Я думаю, что ваша проблема может быть в том, что вы используете одну и ту же переменную _P для (того, что вы ожидаете) 2 разных экземпляров galleryXML.

Переменная _P создается и инициализируется при анализе кода javascript из-за () после var galleryXML = function() {...}.

Так что я думаю, что ваша проблема будет решена, если вы просто поместите переменную внутри init из galleryXML. Вы можете увидеть код здесь: jsfiddle.net / rpNab / 3 / (обратите внимание, что теперь каждый li находится внутри каждой галереи, вместо обоих li в последней галерее )

РЕДАКТИРОВАТЬ: И я понимаю, что теперь с моей модификацией модуль galleryXML кажется уродливым (потому что он имеет только один метод и без переменных), поэтому я сделал небольшой рефакторинг, чтобы в нем было больше класс, но методы теперь должны получить параметр, потому что сам класс продолжает оставаться «статическим», но параметры могут заставить его действовать для различных контекстов. Надеюсь, это поможет: jsfiddle.net / rpNab / 4 /

0 голосов
/ 03 августа 2011

Похоже, что это прекрасно работает в вашем примере с jsFiddle. Единственная причина, по которой вы не видите показ li, заключается в том, что вы забыли добавить стили для этого конкретного li. Вот обновленный jsFiddle , в котором ваш код остался прежним, и правильный стиль li.

...