Событие триггера jquery при совпадении элемента при загрузке страницы - PullRequest
0 голосов
/ 05 октября 2009

Я создал пользовательскую функцию jQuery и хочу вызывать ее для каждого совпадения элемента на странице, когда он загружается. Синтаксис, который я использую для вызова функции:

$(document).ready(function() {
    $("div.class1.class2").fixClassesForIE6("a","b");
}); 

Этот синтаксис ничего не делает. Функция fixClassesForIE6 никогда не вызывается.

Думаю, мне нужно использовать триггер в какой-то форме? Но я не совсем уверен.

В конечном итоге, я хочу:

  1. страница для загрузки
  2. найти все элементы DIV на странице с class1 и class2
  3. Запустить мою функцию для каждого совпадения

Ответы [ 3 ]

1 голос
/ 05 октября 2009

Я вижу 2 возможные проблемы:

1) Ваш селектор неверен. Вы можете подтвердить это, выполнив сам ваш селектор в отладчике JavaScript, например FireBug for Firefox.

2) Метод fixClassesForIE6 () ... это ваш метод? Я не распознаю его как метод JQuery. Если это ваш метод, то он не будет работать - потому что вы вызываете его для результатов селектора, у которого нет этого метода. Вместо этого попробуйте что-то вроде:

$(document).ready(function() { 
    var elements = $("div.class1.class2");
    elements.each(function(){ fixClassesForIE6(this, "a","b"); });
} 
0 голосов
/ 05 октября 2009

Определите fixClassesForIE6, используя синтаксис плагина , и все должно быть хорошо:

(function($) {
    $.fn.extend({
        fixClassesForIE6: function() {
            return this.each(function() {
                // plugin logic goes here
            })
        }
    })
}(jQuery);

Если вы сделали это, и он не работает, значит, у вас есть проблемный код в другом месте.

0 голосов
/ 05 октября 2009

Для выбора всех элементов DIV на странице с class1 и class2, я думаю, что вы должны использовать $ ("div.class1, div.class2") вместо.

Для того, чтобы сделать что-то для каждого соответствующего div с классом 1 или классом 2, я думаю, что вы можете использовать здесь функцию each ()?

$("div.class1,div.class2").each(
     function(index){
       //do something here
     });
...