带有动态选择器的jQuery on()

弗兰克斯图纳

尝试使用jQuery on()切换水平菜单的打开/关闭。

示例:http//jsfiddle.net/dU57h/

<ul id="mobile-header-left" class="app-btns">
    <li id="m-menu-btn" class="menu m-menu-btn-closed"><img src="img/m-menu.png" alt="Menu" /></li>
</ul>
/* Open */
$(".m-menu-btn-closed").click(function() {
    $("#m-menu-btn").removeClass("m-menu-btn-closed");
    $("#m-menu-btn").addClass("m-menu-btn-open");
    $("#m-menu").animate({left:'0'});
});

/* Close */
$("#mobile-header-left").on("click", ".m-menu-btn-open", function() {
    $("#m-menu-btn").removeClass("m-menu-btn-open");
    $("#m-menu-btn").addClass("m-menu-btn-closed");
    $("#m-menu").animate({left:'-75%'});
);

菜单打开确定,但我无法关闭它。我知道它与选择动态添加的类有关,但是在on()工作时遇到了麻烦。

如果有人可以提供帮助,我们将不胜感激。

古法

m-menu-btn-closed从元素中删除类不会阻止打开菜单的click事件。它已经绑定到元素,因此它不受更改类的影响。

当您尝试关闭菜单时,用于打开菜单的事件处理程序也将被激活,并且您有两个相互竞争的动画。

您也可以将委托用于打开事件处理程序,然后在删除类时将其停用:

$("#mobile-header-left").on("click", ".m-menu-btn-closed", function() {

或者,您可以使用单个事件处理程序,并在其中确定单击按钮时的操作:

$("#m-menu-btn").click(function() {
  if ($(this).is(".m-menu-btn-closed")) {
    $(this).removeClass("m-menu-btn-closed").addClass("m-menu-btn-open");
    $("#m-menu").animate({left:'0'});
  } else {
    $(this).removeClass("m-menu-btn-open").addClass("m-menu-btn-closed");
    $("#m-menu").animate({left:'-75%'});
  }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有not:选择器的动态数据属性

来自分类Dev

带有jQuery的目录中的随机图像选择器

来自分类Dev

带有拆分的jQuery多重选择器

来自分类Dev

一页上有多个日期选择器,每个日期选择器都带有动态ID

来自分类Dev

带有变量的复杂Jquery选择器

来自分类Dev

选择器,用于输入具有动态值并具有动态值的jquery

来自分类Dev

单击带有选择器/数据的jQuery

来自分类Dev

带有jQuery标志的国家选择器

来自分类Dev

带有动态数据崩溃的SwiftUI分层选择器

来自分类Dev

使用Jquery限制带有父HTML选择器的复选框选择

来自分类Dev

带有相对索引的jQuery:gt选择器

来自分类Dev

带有:not()的“复杂” JQuery选择器

来自分类Dev

带有通配符选择器的jQuery验证插件errorPlacement

来自分类Dev

带有jquery的目录中的随机图像选择器

来自分类Dev

通过在选择器中使用逻辑OR选择带有jQuery的HTML元素

来自分类Dev

带有对象引用选择器的jQuery Parents()

来自分类Dev

jQuery动态选择器错误

来自分类Dev

带有jquery选择器的温泉

来自分类Dev

带有复杂选择器的jQuery

来自分类Dev

带有DateTimePicker的日期选择器

来自分类Dev

带有变量的jQuery选择器不起作用

来自分类Dev

单击带有选择器/数据的jQuery

来自分类Dev

带有PHP示例的jQuery日期选择器

来自分类Dev

使动态选择器jQuery

来自分类Dev

使 jquery 选择器动态化

来自分类Dev

用于动态表单的 jQuery 选择器

来自分类Dev

带有通配符的 Javascript 选择器

来自分类Dev

jQuery 选择器不选择动态内容?

来自分类Dev

带有变量的 Jquery 选择器并查找