Jquery:绑定加载+同时更改

max*_*max 18 javascript jquery

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

$('#element_id').bind('load, change', function () {
...
});
Run Code Online (Sandbox Code Playgroud)

但这只适用于"改变"而不适用于"加载".有一个更好的方法?

joh*_*odo 47

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

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

我想load以前会触发事件$(document).ready().

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

$(document).ready(function(){
    $('#element_id').bind('change', function () {
        ...
    });
    $('#element_id').trigger('change');
});
Run Code Online (Sandbox Code Playgroud)


sto*_*roz 7

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

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