jQuery mobile:为什么.bind()可以工作,但addEventListener不能工作?

jQuery mobile:为什么.bind()可以工作,但addEventListener不能工作?,jquery,dom,jquery-mobile,jquery-events,Jquery,Dom,Jquery Mobile,Jquery Events,使用jQuery mobile,我尝试在一个简单的复选框上注册一个单击事件处理程序,如下所示: 我是一个复选框 使用jQuery添加click事件处理程序有效: $(“#cb”).bind(“单击”,函数(){…}); 不调用使用传统DOM方法添加的事件处理程序: document.getElementById(“cb”).addEventListener(“单击”,函数(){…}); 最大的问题是为什么?有什么想法吗 p、 我对“pageinit”和“pagebeforeshow”的事

使用jQuery mobile,我尝试在一个简单的复选框上注册一个单击事件处理程序,如下所示:


我是一个复选框
使用jQuery添加click事件处理程序有效:

$(“#cb”).bind(“单击”,函数(){…});
不调用使用传统DOM方法添加的事件处理程序:

document.getElementById(“cb”).addEventListener(“单击”,函数(){…});
最大的问题是为什么?有什么想法吗

p、 我对“pageinit”和“pagebeforeshow”的事件处理程序也有类似的问题,只有通过“bind”添加时才能接收到。这些事件不是作为DOM事件激发的吗

[编辑]

下面是一个完整的测试用例():


我的页面
$(文档).ready(函数(){
$(“#cb”).bind(“click”,function(){alert(“Clicked by jquery”)});
document.getElementById(“cb”).addEventListener(“单击”,function(){alert(“被DOM单击”)});
});
我是一个复选框
[编辑2]

回答我自己的问题:在使用jquery mobile css文件时,单击似乎没有通过,可能是因为它在复选框上方显示了标签。如果不使用CSS,一切都会按预期进行

[编辑3]


回答我自己的第二个问题,为什么我不能通过addEventListener捕获“pageinit”和其他自定义事件:据我所知,addEventListener有三个参数,而不仅仅是两个,例如:

/**
* in DHTML
* @param {String} type
* @param {Function} listener
* @param {Boolean} [useCapture]
*/
window.addEventListener = function(type,listener,useCapture) {};


useCapture在相当长一段时间内都是可选的(请参阅),所以不可能是这样。谢谢你!
/**
* in DOMEvents
* @param {String} type
* @param {EventListener|Function} listener
* @param {Boolean} [useCapture]
*/
EventTarget.prototype.addEventListener = function(type,listener,useCapture) {};