繁体   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