Jquery:绑定加载+同时更改

时间:2011-09-23 15:25:36

标签: javascript jquery

在许多情况下,我需要在加载后将行为绑定到元素,然后在事件触发后绑定(如“更改”)。 我认为最好的方法是将它放在同一行:

$('#element_id').bind('load, change', function () {
...
});

但这只适用于“改变”而不适用于“加载”。有更好的方法吗?

4 个答案:

答案 0 :(得分:44)

我偶然发现了同样的问题。删除逗号是不够的,至少在这种情况下不是这样:

$(document).ready(function(){
    $('#element_id').bind('load change', function () {
        ... // (this DOESN'T get called on page load)
    });
});

我猜load事件会在$(document).ready()之前触发。

这是一个简单的解决方案:

$(document).ready(function(){
    $('#element_id').bind('change', function () {
        ...
    });
    $('#element_id').trigger('change');
});

答案 1 :(得分:5)

对于已加载的内容,当您想要在事件上运行函数时,也可以立即使用自己命名的自定义事件,以避免在内置事件中触发库中的任何现有绑定,例如:

$(".my-selector").on("change rightnow", function() {
  // do stuff...
}).triggerHandler("rightnow");

答案 2 :(得分:1)

你不只是需要删除逗号吗?

答案 3 :(得分:0)

在没有逗号的情况下尝试:

$('#element_id').bind('load change', function () {
...
});

http://api.jquery.com/bind/#multiple-events