我有一个多页 jquery 文档。一切都很顺利,除了偶尔在页面之间导航时,页面将简单地显示为白屏。将显示页脚和页眉,但两者之间没有任何内容。
我的猜测是某个特定事件导致了错误,或者至少会为我指明正确的方向。如何让 jQuery 写出浏览器 console.log 中发生的每个事件?
我有一个多页 jquery 文档。一切都很顺利,除了偶尔在页面之间导航时,页面将简单地显示为白屏。将显示页脚和页眉,但两者之间没有任何内容。
我的猜测是某个特定事件导致了错误,或者至少会为我指明正确的方向。如何让 jQuery 写出浏览器 console.log 中发生的每个事件?
在找到这个之前,我正在四处寻找类似的东西并且几乎推出了我自己的东西:
http://view.jquerymobile.com/master/tools/
基本上,可以使用页面事件记录器小书签将此脚本动态地注入到 DOM 中,并将事件记录到标准的 console.log 中。如果您想查看所有事件(例如“mobileinit”),只需将脚本包含在您的页面中即可。我通常会这样做:
{% if debug %}
<script src="http://view.jquerymobile.com/master/tools/log-page-events.js"></script>
<script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.js"></script>
{% else %}
<script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
{% endif %}
值得注意的是,并非所有事件都被记录(例如orientationchange),但大多数事件都被记录。它为我节省了很多调试和理解框架的时间。
jQuery Mobile 没有内置开关来启用对所有 JQM 事件的调试。该站点推荐使用未压缩的脚本进行调试,但这并不能完全方便地在控制台中记录所有内容。
绑定到页面上的每个事件或至少绑定到$.mobile.base
对象可能会有所帮助。查看这篇文章以了解如何做到这一点:
如何在 DOM 元素上绑定所有事件?