我有一个函数,它将click事件处理程序附加到我的元素:
function attachClickToElem() { $('.elem').on('click',function () { alert('Hello World'); }); }
问题是每当我调用这个函数时,
n单击处理程序附加到我的元素,所以当
我叫它两次,当我点击我的元素时我得到两个警报:
$(function () { attachClickToElem(); attachClickToElem(); });
我该怎样预防呢?并检查我的元素
已经点击处理程序?
解决方法
尝试
function attachClickToElem() { $('.elem').off('click.mytest').on('click.mytest',function () { alert('Hello World'); }); } $(function () { attachClickToElem(); attachClickToElem(); });
演示:Fiddle
其他方式
function attachClickToElem() { $('.elem').filter(function(){ return !$(this).data('myclick-handler'); }).on('click.mytest',function () { alert('Hello World'); }).data('myclick-handler',true); } $(function () { attachClickToElem(); attachClickToElem(); });
演示:Fiddle
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。