簡體   English   中英

jquery更改事件回調

[英]jquery change event callback

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM