如何捕获jQuery.event.trigger()?

Mos*_*eed 8 javascript jquery

我想使用未设置为DOM元素的jQuery构建自定义事件.

它在jQuery描述中说:

jQuery.event.trigger('test');
Run Code Online (Sandbox Code Playgroud)

是触发自定义事件.

但我怎么能抓住它?

thx提前

rai*_*7ow 10

我想你问的是那个自定义事件(至少对我试图抓住它没有任何意义trigger):用.bind完成:

$('some_selector').bind('test', function() { 
  console.log('Test was caught'); }
);
Run Code Online (Sandbox Code Playgroud)

更新:实际上不,你不需要一个选择器 - 只是一个对象成为事件的'主持人'.你可以使用这样的东西:

// taken from the comments at the Doc page
var o = {length: 3};
$(o).bind( 'custom', function(){ console.log('hi') } );
$(o).trigger('custom');

// Output
hi
hi
hi
Run Code Online (Sandbox Code Playgroud)


小智 6

我想你们都错过了这个问题.他并不是在问你如何监听一个物体上触发的事件.他问你如何通过jQuery.event.trigger()直接触发事件.

我在http://www.sitepoint.com/jquery-custom-events/上找到了一篇非常好的文章.

基本上你只是听文档对象.

$(document).on("test", function(event, data) {
  console.log(data)
});

$.event.trigger('test', [{ foo: 'bar' }]);
Run Code Online (Sandbox Code Playgroud)