我正在尝试调试一些复杂的代码,其中一些UI在iphone phonegap应用程序中创建。
问题在于,当我按下元素时,事件处理程序(据说可能)附加到其touchstart
事件不会触发。
由于某些原因,这些事件并未真正附加,或者点击在以某种方式到达之前被阻止...
我正在尝试调试这种情况并且正在徘徊:
1)给定一个jquery对象,是一种列出附加到它的事件处理程序(通过jquery)进行调试的方法吗?
2)是否可以轻松覆盖.on
并让console.log
参数
3)关于如何处理这样一个问题的任何其他想法
更新:
在确认该元素确实具有touchstart
处理程序且未被调用之后,我发现如果我添加click或mousedown
事件处理程序,则会调用它们。
我怀疑这部分是由jquery mobile引起的,但我不确定如何或为什么以及为什么它只影响我的部分控件(那些不是JQM控件......)。
答案 0 :(得分:0)
This Chrome extension列出了附加的JQuery Events。
答案 1 :(得分:0)
How do you log all events fired by an element in jQuery?
function getEventsList($obj) {
var ev = new Array(),
$events = $obj.data('events');
for(var i in $events) {
ev.push(i);
}
return ev.join(' ');
}
$obj.on(getEventsList($obj), function(e) {
console.log(e);
});
我用它来找出jquery插件绑定到元素的确切自定义事件。它获取所有附加事件,并在事件被触发时调用console.log。