javascript - :not(. 是否被禁用)对于事件处理程序总是必要的?

标签 javascript jquery html css event-handling

有没有办法摆脱:not(.disabled)在事件处理程序中,对于 li.disabled ,那么“做事”仍然会发生吗?

我问是因为我记得我不必添加 :not(.disabled)到一个按钮元素,或者它可能是一个按钮,就像带有 li a 的下拉菜单一样里面的元素。

HTML

<ul class="dropdown-menu">
    <li id="fooId" class="disabled">
        text
    </li>
</ul>

JavaScript

$('body').on('click', '#fooId:not(.disabled)', function () {
    // "Do stuff.."
});

更新:

Boostrap dropdown li a disabled

禁用的菜单项 将 .disabled 添加到 <li>在下拉列表中禁用链接。

<ul class="dropdown-menu" aria-labelledby="dropdownMenu4">
  <li><a href="#">Regular link</a></li>
  <li class="disabled"><a href="#">Disabled link</a></li>
  <li><a href="#">Another link</a></li>
</ul>

我以前用过这种,哪里a被包括在内。

我正在将代码重构到另一个类,同时我删除了 a元素也是,现在我必须添加 :not(.disabled)到事件处理程序,不要进入预期禁用的元素。 但令我惊讶的是,我想如果您删除 a 就不起作用了元素。 (我必须再次测试它)。

最佳答案

如果我没理解错的话,你想要做的是:

$('body').on('click', 'li', function () {
  if($(this).hasClass('disabled'))
    return;  // Do stuff won't execute for disabled li, but will work for others
  // "Do stuff.."
});

关于javascript - :not(. 是否被禁用)对于事件处理程序总是必要的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36594967/

相关文章:

"for"循环的 JavaScript 范围

javascript - jQuery 验证插件 - 表单未提交

javascript - 循环 css 背景

jquery - 让 div 填充所有可用空间,3 列,固定宽度,可变高度

javascript - 使用 HTML5 文件 API 上传 swf 并获取宽度和高度

javascript - 如何删除视频播放结束时的大播放按钮(VideoJS)

javascript - 通过 ajax 加载 HTML 和 js 安全吗?

javascript - ctrl + click of href=# 出现问题

javascript - 单击时将类添加到 ReactJS 中的多个对象

javascript - 为什么 url 查询字符串不传递变量值?