如何在jQuery中定义自己的事件?

时间:2010-08-09 03:25:56

标签: javascript jquery

如何在jQuery中定义自己的事件?

3 个答案:

答案 0 :(得分:5)

使用.bind()定义并附加您自己的自定义事件:

// make myObject listen for myFancyEvent
$('#myobject').bind('myFancyEvent', function(){
  alert('Yow!');
});

...然后直接.trigger()

$('#myobject').trigger('myFancyEvent');

...或与其他事件处理程序混合使用:

$('#myobject').click( function(){
  doSomething();
  $(this).trigger('myFancyEvent');
});

您不应该在查找有关该主题的大量信息时遇到困难。 This article已有几年历史,但仍然是一个很好的概述。

答案 1 :(得分:1)

请参阅此link

以下是上述文章中的一些代码段。

您可以使用jQuery在您选择的任何DOM对象上触发自定义事件。只需使用以下代码触发它:

$("#myelement").trigger('fuelified');

您可以使用jQuery中的bind或live函数订阅该事件:

$("#myelement").bind('fuelified',function(e){ ... });
$(".cool_elements").live('fuelified',function(e){ ... });

您甚至可以在触发事件时传递有关事件的其他数据,并在侦听器端引用它:

$("#myelement").trigger('fuelified',{ custom: false });
$("#myelement").bind('fuelified',function(e,data){ if(data.custom) ... });

调用触发器的元素可供侦听器的回调函数用作变量this。

答案 2 :(得分:1)

你可以抛出这样的事件:

$("#element").trigger("your.event", [ 'Pamela', 'Anderson' ] );

请注意,额外参数应作为数组传递。

如何倾听事件:

$("#element").bind("your.event", function(event, firstName, lastName) { 
    // Callback
});

如果事件不是特定于dom节点的特定事件,则“#element”选择器可以替换为文档。

jQuery文档: Bind Trigger