我正在尝试为我的选择器建立一种方法,以“监听”除典型的“单击”,“更改”,“提交”等之外的“全局”事件。我探索了各种可以找到的“事件管理器”,而且它们仍然是针对表单而设计的。有什么方法可以对非标准(即自定义)事件执行类似的操作?目标是让选择器订阅一个事件,然后能够在一处触发该事件,并且它将为订阅的所有事件引发该事件。

插入示例进行演示。

 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');

最佳答案

例如,这内置在jQuery中:

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


触发者:

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


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

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


这使用.bind().trigger()。正如Jacob指出的那样,您还可以使用.live()绑定到1.4+中的自定义事件,如下所示:

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

关于jquery - jQuery事件监听,非标准事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2562050/

10-12 07:31
查看更多