参考下面的代码,有没有办法绑定"测试2" " my_event"的处理程序事件在" my_event"之后已经发生了以便"测试2"是马上跑?
<!DOCTYPE html>
<html>
<head>
<title>tests</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(document).bind("my_event", function () {
alert("test 1");
});
$(document).trigger("my_event");
$(document).bind("my_event", function () {
alert("test 2");
});
</script>
</body>
</html>
答案 0 :(得分:2)
结帐jQuery's special events。每次添加"facebookReady"
事件时,都会调用add
回调,您可以选择立即调用回调或根据某些条件推迟回调。在这个例子中,我正在查看是否存在全局FB
属性来决定是否调用它。
jQuery.event.special.facebookReady = {
add: function(handleObject) {
if (window.FB) {
handleObject.handler.call(this);
}
}
};
设置特殊事件的回调后,像往常一样绑定事件。
$(document).bind('facebookReady', ..);
根据FB是否加载,它可能会立即触发,也可能不会立即触发。
结帐example。
答案 1 :(得分:0)
将警报值作为触发器中的额外参数传递,以便您可以重复使用处理程序代码,如
$(document).bind("my_event", function (e,param) {
alert(param);
});
$(document).trigger("my_event","alert1");
$(document).trigger("my_event","alert2");