jQuery - 删除了类后仍然在元素上运行的函数

时间:2011-11-04 07:54:49

标签: jquery drop-down-menu

我有一些代码可以在切换菜单和下拉菜单之间切换,具体取决于窗口大小。它工作,但只应在ul.dropdown上运行的函数也在ul.toggle上运行。

调整面板大小以切换两个菜单状态。当处于切换模式时,子级别uls并且上下移动它们不应该是。

http://jsfiddle.net/agileapricot/C8ZRC/

3 个答案:

答案 0 :(得分:2)

加载页面时,悬停事件附加到aaDropdown元素。稍后,您将删除与选择器匹配的类,但不删除附加的悬停事件。这导致悬停的绑定仍然被触发。

避免这种情况:

  1. 删除并重新附加aaMenuMode中的悬停侦听器 功能,或:
  2. 使用live()动态评估与您的选择器匹配的元素(首选)

答案 1 :(得分:0)

请使用var aaDropdown = jQuery(".dropdown li").has("ul"); // Cache dropdowns 而不是var aaDropdown = jQuery("ul.dropdown li").has("ul"); // Cache dropdowns

并制作代码的jsFiddle并将链接放在此处可以获得更好的响应。

答案 2 :(得分:0)

您还可以使用.unbind()方法取消绑定事件 http://api.jquery.com/unbind/