页面加载时元素匹配的jquery触发器事件

时间:2009-10-05 15:58:39

标签: jquery function triggers

我已经创建了一个自定义的jQuery函数,我想在加载时为页面上元素的每个匹配调用它。我用来调用函数的语法:

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

该语法不起作用。永远不会调用fixClassesForIE6函数。

我想我可能需要以某种形式使用'触发器'?但我不完全确定。

最终,我想:

  1. 要加载的页面
  2. 使用 class1 class2
  3. 查找页面上的所有DIV元素
  4. 为每场比赛触发我的功能

3 个答案:

答案 0 :(得分:1)

我可以看到两个可能的问题:

1)你的选择器错了。您可以通过在JavaScript调试器(例如FireBug for Firefox)中单独执行选择器来确认这一点。

2)方法fixClassesForIE6()...是你的方法吗?我不认为它是一个JQuery方法。如果它是你的方法,那么这将不起作用 - 因为你在选择器的结果上调用它,它没有那个方法。相反,尝试类似:

$(document).ready(function() { 
    var elements = $("div.class1.class2");
    elements.each(function(){ fixClassesForIE6(this, "a","b"); });
} 

答案 1 :(得分:0)

为了在页面上选择class1和class2的所有DIV元素,我认为你应该使用 $(“div.class1,div.class2”)代替。

为每个匹配的div / class1或class 2做一些事情,我认为你可以在这里使用each()函数吗?

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

答案 2 :(得分:0)

使用plugin syntax定义fixClassesForIE6,一切都很好:

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

如果你已经这样做而且它无法正常工作,那么你在别处就会遇到问题。