如何在change()
事件完成后调用一次函数?
例如,像这样:(我知道jQuery默认没有回调方法)
$('#element').change( function(){
// do something on change
// $('#milestonesSelect').multiselect({ minWidth: 120 , height : '200px' ,selectedList: 4 }).multiselectfilter();
// some animation calls ...
// ...
}, function(){
// do something after complete
alert('another codes has completed when i called');
}
);
在完成更改方法的所有代码后,是否可以调用单个回调,除了为其上的每个函数调用完整的回调?
我需要在更改事件完成后执行某些操作
我需要在更改处理程序中为方法设置顺序吗?
答案 0 :(得分:9)
您可以使用event bubbling并在document
注册回调。
$(document).on('change', '#element', function(){
console.log('after all callbacks')
});
演示:Fiddle
答案 1 :(得分:2)
我自己花了一些时间来探索这个问题,并决定提交我对这个问题的回答。这不是利用任何jQuery的延迟方法,这可能是一种更好的方法。我没有充分探讨它们对此事有任何意见。
$("#element").change(function() {
handler().after(callBack($("#element").val()));
}
function handler() {
alert("Event handler");
}
function callBack(foo) {
alert(foo);
}
演示:JSFiddle
答案 2 :(得分:0)
如果我正确理解您的问题,这将在更改事件触发后仅执行一次代码:
var changed = false;
$('#element').on('change', function() {
if ( !changed ) {
// do something on change
changed = true;
}
}
});