我可以用setTimeout实现我想要的东西:
$('#container').on('click', '#target', function() {
// do stuff ...
// ... then:
setTimeout(function(){
// do more stuff
}, 300);
});
...但我想知道是否有办法使用在事件功能完成后调用的回调?
答案 0 :(得分:4)
您可以使用jQuery.Deferred()
$('#container').on('click', '#target', function() {
// do stuff ...
function doStuff(deferred) {
// do stuff
return deferred.resolve()
}
function doMoreStuff() {
// do more stuff
}
var dfd = new $.Deferred(doStuff);
// ... then:
dfd.then(doMoreStuff);
});
答案 1 :(得分:1)
如果您不想使用回调或承诺,可以绑定目标以在触发器上运行,然后在您需要时触发该行为。
{'desc': "Can't contact LDAP server"}
答案 2 :(得分:1)
如果您在css
transition
完成时尝试调用某个函数,请使用transitionend
事件
$("#elementWhereCSSTransitionsApplied").on("transitionend", doStuff);
或将元素动态追加到document
$("#parentElementOfWhereCSSTransitionsApplied")
.on("transitionend", ".elementWhereCSSTransitionsApplied", doStuff);