javascript - 为什么 Chrome 开发工具会显示未绑定到我的元素的点击事件侦听器?
问题描述
我正在开发一个应用程序,它使用:
- jQuery 3.2.1
- 引导程序 3.3.7
- FontAwesome 5.0.8
我有一个模式窗口(带有 ID #notifierModal
),其中包含一个表示“向下”箭头的元素(使用 FontAwesome 的chevron-circle-down)。
对此的标记如下:
<ul class="fa-ul toggle-notifier-group">
<li>
<a href="#">Item 1</a>
<i class="fas fa-chevron-circle-down toggle-filters"></i>
<ul class="filters" style="display: none;">
<li>Item 1 - sub A</li>
<li>Item 1 - sub B</li>
<li>Item 1 - sub C</li>
</ul>
</li>
<li>
<a href="#">Item 2</a>
<i class="fas fa-chevron-circle-down toggle-filters"></i>
<ul class="filters" style="display: none;">
<li>Item 2 - sub A</li>
<li>Item 2 - sub B</li>
<li>Item 2 - sub C</li>
</ul>
</li>
<!-- Further items -->
</ul>
其目的是当用户单击 FontAwesome 向下箭头时,它会切换.filters
下面适当列表的可见性(即,如果用户单击“Item 1”,它只会切换“Item 1 - sub”列表)。
因此,我将以下内容添加到app.js
我的应用程序引用的文件中:
$(function() {
$('#notifierModal').on('click', '.toggle-filters', function () {
$(this).siblings(".filters").toggle();
});
});
这可行,但是在使用了几次之后,当用户单击图标时似乎什么也没有发生。
为了尝试调试,我检查了.toggle-filters
Chrome 中的元素,然后转到Event Listeners > click。我得到以下信息:
第 755 行的参考app.js
确实包含我在上面发布的针对点击的 js .toggle-filters
。但是其他所有的行号都是与那个元素无关的js。例如:
- 第 201 行:
$(document).on('click', '#exportExcel', function (e) {
- 第 321 行:
$(document).on('click', '.browse-ctp__filters-data .include, .browse-ctp__filters-data .exclude', function () {
所有其他行(除了第 755 行)都是这样的。
如果它们与我正在检查并要求查看点击事件侦听器的元素无关,为什么 Chrome 会向我显示这些?当它给我引用不相关的东西时,我该如何调试它?或者它是否相关,这就是它可能不起作用的原因吗?
在 Chrome 版本 70.0.3538.77 中注意到,但之前在其他版本中看到过这种行为。
解决方案
更新的答案:
Inspector 工具中元素选项卡侧面板中的 eventListener 选项卡显示页面中注册的事件。
如果它们与我正在检查并要求查看点击事件侦听器的元素无关,为什么 Chrome 会向我显示这些?
如果您在元素面板的标记中选择任何元素,那么您可以看到为该元素注册的所有事件以及绑定在父元素上的所有事件。
当它给我引用不相关的东西时,我该如何调试它?
如果您切换复选框,那么您可以看到仅绑定在所选元素上的事件。
推荐阅读
- java - 我如何通过 http://localhost:8080/ 启动 Camunda bpm?
- sql - 递归 SQL 查询获取 Json 树模型数据
- javascript - 如何检查输入值是否为图像?
- python - 如何在 Matplotlib 中制作订单簿深度图?
- android - 迁移到 3.6.0 以上的 gradle 版本,ClassNotFoundException
- python - windows上的麦克风无法使用python进行speech_recognition
- plsql - 如何从对象自定义类型的表中检索列名
- arrays - 非常大的数组的前 10% 公式?
- android - 限定符类型和值是什么?
- python-3.x - 使用 Pillow 将彩色文本添加到 256 色调色板 gif