jquery为点击功能添加更多功能

时间:2009-12-01 09:03:58

标签: jquery events binding

我有一个函数绑定到每个页面上加载的一些Javascript文件中的页面对象。

我需要为已定义的事件处理程序添加更多功能。这是我的意思的一个例子。

具有当前定义的点击事件的对象会关闭屏幕上显示的弹出式div。单击此选项(仅在此特定页面上)时,我需要它来重置页面上的一些元素。

因此,我可以很容易地取消绑定click事件,并重新绑定自定义事件,但它会从原始关闭事件中复制大量代码。

如果情况变得更糟,我可以这样做,但我想避免为这种特殊情况复制该代码。

有没有办法将更多代码添加到当前创建的事件中?

感谢您的任何见解!

5 个答案:

答案 0 :(得分:1)

使用添加的功能绑定另一个处理程序

答案 1 :(得分:0)

将click事件设置为函数,例如

$(element).click(function(){//do stuff in here});

您可以在函数位中添加您想要的功能或更多功能。

答案 2 :(得分:0)

您可以使用事件委派。谷歌一些教程的术语

基本上通过将事件绑定到父可模拟元素然后决定被单击的子项的操作来工作。通过这种方式,您可以添加/删除子类型x,而无需将操作绑定/重新绑定到它。

$("#parent_global_div").click( function (ev) {
   var el = $(ev.target);
   if( el === x){
       //do something
   }

});

答案 3 :(得分:0)

你可以使用“bind”然后click方法可以在所有这些绑定事件上调用“trigger”。

答案 4 :(得分:0)

事件在jquery上排队,因此调用所有已分配/绑定的事件。如果由于特定原因,您需要仅绑定/取消绑定该特定排队事件,则将该事件命名为。

$('button').click(function(){alert(1);});
$('button').click(function(){alert(2);});
//The 2 function gets called when the button is clicked 

$('button').unbind('click');//all handlers are removed.


//Namespaced event
$('button').click(function(){alert(1);});
$('button').bind('click.custom',function(){alert(2);});
//The 2 function gets called when the button is clicked 


$('button').unbind('click.custom');//only the click.custom is unbind