jquery事件监听,非标准事件

时间:2010-04-01 16:44:21

标签: jquery

我正在尝试为我的选择者建立一种方式来“倾听”超出典型的“点击”“更改”“提交”等的“全球”事件。我已经探索了各种“事件管理者”,我可以找到,而且它们仍然是为表格而设计的。对于非标准(即自定义)事件,有没有办法做这样的事情?目标是让选择者订阅一个事件,然后能够在一个的地方触发它,它会为订阅它的所有东西提升它。

插入示例进行演示。

 return this.each(function () {
  $(this).live('ON_CONTENT_CHANGING', function (e) {
   $(this).block({
    overlayCSS: { opacity: 1, color: '#000' },
    timeout: 800
   });

   e.preventDefault();
  });

  $(this).live('ON_CONTENT_CHANGED', function (e) {
   $(this).sliding();
   $(this).unblock();

   e.preventDefault();
  });

//插件的其余部分......

$("*").trigger('ON_CONTENT_CHANGING');

1 个答案:

答案 0 :(得分:5)

这是内置于jQuery中的,例如:

$(".button").bind("myEvent", function() {
  alert("myEvent fired on " + this.id);
});

触发:

$("*").trigger("myEvent");

或者在特定元素(或任何选择器,如其他所有jQuery)上:

$("#myButton").trigger("myEvent");

这使用.bind().trigger()。正如雅各布在评论中指出的那样,你也可以用.live()绑定1.4+中的自定义事件,如下所示:

$(".button").live("myEvent", function() {
  alert("myEvent fired on " + this.id);
});