jquery 绑定到已发生的事件并自动运行处理程序

whhtz7ly  于 2022-12-03  发布在  jQuery
关注(0)|答案(2)|浏览(110)

参考下面的代码,是否有一种方法可以在“my_event”发生 * 之后 * 将“test 2”处理程序绑定到“my_event”事件,以便立即运行“test 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>
rlcwz9us

rlcwz9us1#

checkout 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是否加载,它可能会或可能不会立即触发。
checkout example

wgx48brx

wgx48brx2#

将alert值作为触发器中的额外参数传递,以便可以重用处理程序代码,如

$(document).bind("my_event", function (e,param) {
    alert(param);
      });

$(document).trigger("my_event","alert1");
$(document).trigger("my_event","alert2");

http://jsfiddle.net/Bs5Db/52/

相关问题