jquery更改事件回调

如何在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'); } ); 

在完成更改方法的所有代码之后,是否可以调用单个回调,除了为其上的每个函数调用完整的回调?

更改事件完成后我需要做一些事情

我需要在变更处理程序中为方法设置顺序吗?

您可以使用事件冒泡并在document注册回调。

 $(document).on('change', '#element', function(){ console.log('after all callbacks') }); 

演示: 小提琴

我自己花了一些时间来探索这个问题,并决定将这个问题的答案提交给我。 这不是利用任何jQuery的延迟方法,这可能是一种更好的方法。 我没有对他们进行过充分的探讨,对此事有任何意见。

 $("#element").change(function() { handler().after(callBack($("#element").val())); } function handler() { alert("Event handler"); } function callBack(foo) { alert(foo); } 

演示: JSFiddle

如果我正确理解了您的问题,这将在触发更改事件后仅执行一次代码:

 var changed = false; $('#element').on('change', function() { if ( !changed ) { // do something on change changed = true; } } });