我有一个ajax应用程序,将在每次交互时运行函数.我希望每次都能运行我的设置功能,所以我的所有设置代码都保持封装状态.但是,绑定元素不止一次意味着处理程序将运行多次,这显然是不可取的.是否有一种优雅的方式在jQuery中多次调用一个元素上的bind而不会多次调用该处理程序?
Che*_*try 12
one像Tom说的用户jQuery 函数,但每次绑定之前解除处理程序的绑定.将事件处理程序分配给变量比使用匿名函数更有帮助.
var handler = function(e) { // stuff };
$('#element').unbind('click', handler).one('click', handler);
//elsewhere
$('#element').unbind('click', handler).one('click', handler);
Run Code Online (Sandbox Code Playgroud)
您还.unbind('click')可以删除附加到元素的所有单击处理程序.
您可以document使用该one()函数附加事件:
$(document).one('click', function(e) {
// initialization here
});
Run Code Online (Sandbox Code Playgroud)
运行后,将再次删除此事件处理程序,以便它不会再次运行.但是,如果您需要在其他元素的click事件之前运行初始化,我们将不得不考虑其他事情.然后使用mousedown而不是click可能工作,因为在click事件之前触发了mousedown事件.
| 归档时间: |
|
| 查看次数: |
12096 次 |
| 最近记录: |