Javascript 如何检查元素是否已在侦听函数
当我用同一个函数添加两次.on()事件侦听器时,它会触发函数两次。。 示例:(单击“打开”按钮,然后单击主绿色div) 如何检查一个元素是否已经在侦听一个函数,以避免将其添加两次Javascript 如何检查元素是否已在侦听函数,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,当我用同一个函数添加两次.on()事件侦听器时,它会触发函数两次。。 示例:(单击“打开”按钮,然后单击主绿色div) 如何检查一个元素是否已经在侦听一个函数,以避免将其添加两次 if (already $('#id').on('click',functionName) ) 您可以解除事件列表器的绑定,然后添加它 要解开它,请使用 $('#id').unbind('click'); 您可以使用$.\u数据方法,尽管它是内部的 可能不太理想 无论如何,它就像:$。\u数据($(“#id”
if (already $('#id').on('click',functionName) )
您可以解除事件列表器的绑定,然后添加它 要解开它,请使用
$('#id').unbind('click');
您可以使用$.\u数据方法,尽管它是内部的
可能不太理想
无论如何,它就像:
$。\u数据($(“#id”)[0],“事件”)
你有这个$(“#内容”)。在('click',toggleIt)
上两次,一次接一次。。。计划好了吗?您可能也对活页夹感兴趣,比如上的,但不允许duplicates@JFK是的,只是为了在fiddle中进行测试-在一个实时应用程序中我会添加。在动态上,我需要知道它是否已经被应用。实际上,一个将停止触发事件,并且只会重复点击一次,然后停止工作,这似乎不是他想要的,或者是吗?@kieran one()只是一次尝试而已我相信啊,你给了我一个主意,在打开它之前,先关闭('click',functionName),删除同一个函数之前的任何赋值。谢谢,等等。。不仅仅是不同的名字。我更喜欢本例中建议的.unbind('click'),因为它会删除分配给处理程序的所有函数,而不必使用.off()@bushdiver单独关闭。如果使用on()
,则可以使用off()
而不是unbind()