在许多情况下,我需要在加载后将行为绑定到元素,然后在事件触发后绑定(如“更改”)。 我认为最好的方法是将它放在同一行:
$('#element_id').bind('load, change', function () {
...
});
但这只适用于“改变”而不适用于“加载”。有更好的方法吗?
答案 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 () {
...
});