使用名称绑定和取消绑定函数
bind and unbind function with a name
我需要在点击时绑定和取消绑定一个函数。问题是,我需要点击事件(也'this'作为点击元素将是好的)
function clickElement(e) {
[...]
//here I need event or this clicked element
}
可以,但是没有事件参数
$('.clickme').on('click', clickElement)
可以,但是我不能取消特定函数
的绑定 $('.clickme').on('click', function(e){clickElement(e)})
这个行不通:
$('.clickme').on('click', clickElement(e))
为什么?
我需要使用。on而不是。click,因为之后我需要解绑定clickElement,只有clickElement,像这样:
$('.clickme').off('click', clickElement);
第一个选择正是您所需要的
function clickElement(e) {
console.log(e, this);
}
$('.clickme').on('click', clickElement);
原因
$('.clickme').on('click', function(e){clickElement(e)})
$('.clickme').off('click', function(e){clickElement(e)})
不起作用是因为它是一个新的匿名函数,它不会映射到on()中使用的函数。如果需要这样做,就必须保留对它的引用。
var myFunc = function(e){clickElement(e); };
$('.clickme').on('click', myFunc ).data("fnc", myFunc);
和删除
var elem = $('.clickme');
elem.off('click', elem.data("fnc") );
相关文章:
- 如何在动态创建的节点上绑定函数
- 绑定函数时在IE7中未实现Javascript错误
- jQuery结合了2个绑定函数(类型错误:a是未定义的)
- Jquery函数无法处理动态加载的内容(不是绑定函数)
- 从console.log调用webpack绑定函数/类
- React没有绑定函数调用,尽管有相反的警告
- jQuery使用最后一个参数在Javascript循环中单击绑定函数
- 如何在React Native中为ListView中的每个元素绑定函数
- jquery绑定函数不起作用
- 具有绑定与未绑定函数的数组筛选器
- 绑定函数仅适用于最后一个元素
- 如何将新函数绑定到元素的 onclick 事件,并使其在所有其他绑定函数之前运行
- 绑定函数链接
- 动态 JS 拖动绑定函数限制在线拖动
- 绑定函数的返回语句中参数的推理是什么
- 在jQuery上动态绑定函数
- 确定 JavaScript 函数是否为绑定函数
- jQuery 绑定函数不起作用
- 反应组件中的绑定函数
- Javascript 绑定函数到 Ajax 加载事件