jquery - 点击html元素触发哪个JS函数
问题描述
我有一个 HTML 侧边栏,我想更改打开/关闭侧边栏的图标
我的 HTML 代码是:
<li class="sidebar-toggler-wrapper">
<!-- BEGIN SIDEBAR TOGGLER BUTTON -->
<div class="sidebar-toggler">
</div>
<div class="clearfix">
</div>
<!-- BEGIN SIDEBAR TOGGLER BUTTON -->
</li>
具有类的元素sidebar-toggler
是我单击以打开/关闭侧边栏的元素。如您所见,没有定义图标的 html(例如:)<i class="fa fa-arrow-left"></i>
。所以在某个地方有一个 JS 代码可以设置和更改这个图标,但我找不到这个 js/line。
我想 Google Chrome Inspector 或 Firebug 中有一个选项可以显示网页中触发的所有事件或类似的东西?
我在我的所有项目中搜索“$('.sidebar-toggler')”之类的东西,但没有找到有趣的东西。
更新
搜索“sidebar-toggler”给了我这个代码,不是图标处理的痕迹
// handle the search submit
$('.sidebar-search .submit').on('click', function (e) {
e.preventDefault();
if ($('body').hasClass("page-sidebar-closed")) {
if ($('.sidebar-search').hasClass('open') == false) {
if ($('.page-sidebar-fixed').size() === 1) {
$('.page-sidebar .sidebar-toggler').click(); //trigger sidebar toggle button
}
$('.sidebar-search').addClass("open");
} else {
$('.sidebar-search').submit();
}
} else {
$('.sidebar-search').submit();
}
});`
谢谢您的帮助
解决方案
Chrome devtools 确实有一个功能可以帮助解决这种情况——你知道一个事件正在触发,但你不知道结果是什么代码正在运行。
请参阅下面的屏幕截图以供参考。
- 打开Sources选项卡(您可能必须单击箭头才能看到它)。
- 在左下角的面板中,展开标题为Event Listener Breakpoints的部分,然后展开Mouse子部分,然后选中单击框。这将导致 Chrome 调试器暂停任何点击事件。现在单击页面上的元素,Chrome 将进入调试模式。
- 可能会调用多个处理程序,其中一些您不关心。使用蓝色的恢复脚本执行按钮和/或它旁边的控件可以挖掘正在运行的代码并搜索您关心的内容。准备好通过一堆 jQuery 库代码 :)
如果您不熟悉 Chrome 的调试器,一开始可能会有点令人生畏。您可能会经历几个周期,错过了您想要的内容,浏览器会恢复正常运行。如果发生这种情况,只需单击#toto
要重新开始的元素,然后重试。
查看Google Chrome 开发者 YouTube 频道几个月前(2018 年 1 月)发布的关于调试的精彩视频。它很短(8 分钟),但很有教育意义。
最新版本的 Chrome (66) 中还有一个很棒的功能,它允许您在调试器暂停时从调用堆栈中黑箱化脚本。如果您安装了 Chrome 66 并且卡在一堆 jQuery 代码中,请jquery.min.js
在Callstack窗格中找到,右键单击它,选择Blackbox script,然后重新触发单击断点。Chrome 现在应该绕过 jQuery 代码,从而更容易找到您想要的内容。
推荐阅读
- ruby - 如何使用 ruby 在 redis 哈希中设置数据
- django - 模板标签“添加”需要 2 个参数,提供 1 个
- shell - 在redis中加载文件时,值中插入了一个新行,如何避免这种情况
- amazon-web-services - 带有 HTTP2 的 AWS 应用程序负载均衡器
- drupal - 错误后重新安装drupal
- php - 当 Chrome 关闭时,登录 PHP 会话被清除,在 Firefox 中持续存在
- sql - Mysql prepare 语句不返回任何内容。没有语法错误。为什么?
- python - 如果前一行中的 ID 匹配,则累积计数 - Python/Pandas
- angular - 如何在按钮单击事件Angular 4后更改文本值
- object - 运行时错误对象变量或未设置变量