jQuery ready()函数可以为同一个元素使用两次吗?

时间:2011-07-02 11:04:26

标签: javascript jquery

我想对文档元素使用jQuery ready()函数。这是我的脚本:

第1页:

$(document).ready(function(){
            $('form#haberekle').ajaxForm(options);
});

第二页:

    $(document).ready(function() { 
    var options = { 
        success:showResponse,
        beforeSubmit:showRequest,
        resetForm:true
    };
    $('#haberresmiekleform').ajaxForm(options); 
});

这两个页​​面包含在<!--#include file=""-->

的同一主页中

这两个功能可以正常工作,还是相互阻挡? 根据我的经验,他们似乎工作正常。

例如:按钮的onclick功能只有一个。

4 个答案:

答案 0 :(得分:10)

您可以根据需要进行尽可能多的.ready()次调用,jQuery的设计考虑到了这一点,绝对可以。

是的,它是 ok ,你不会有任何问题......这种情况一直都在发生。

将其视为事件处理程序,如.click(),这正是它的行为方式(严格来说,不是完全,但对于大多数目的而言如此)。所以你可以拥有你想要的任意数量。

可能感兴趣的另一个注意事项是,您通过are pushed传递到.done() readyList.ready() {{3}}处理程序,这意味着它们将按顺序执行你在页面中调用它们。在早期版本的jQuery中,相同的顺序行为是正确的(虽然通过数组,不同的方法)。

答案 1 :(得分:2)

是的,没关系。当dom满载时,两者都会被调用。请注意,如果在之后调用.ready() 已加载dom,则会立即执行回调。见http://api.jquery.com/ready/

答案 2 :(得分:2)

答案 3 :(得分:1)

为同一事件附加多个处理程序没问题。 ready的文档说:

  

还有   $(document).bind(“ready”,handler)。   这与准备好的行为类似   方法,但有一个例外:如果   准备好的事件已经解雇了你   尝试.bind(“准备好”)绑定   处理程序不会被执行。

bind的文档说:

  

当一个事件到达一个元素时,全部   绑定到该事件类型的处理程序   元素被解雇了。如果有   他们注册了多个处理程序   将始终按顺序执行   他们被绑定了