我需要找到附加到#mySelect的所有事件处理程序,如果该事件是通过jQuery创建的,则可以获取它,在这里alert(e)将仅显示“更改”而没有“单击”
JavaScript:
$("#mySelect").change(function(){
alert("changed");
})
$.each($._data( $("#mySelect")[0], "events" ), function(e) {
alert(e);
})
HTML:
<select id="mySelect" onclick="alert('hello')" >
<option value="1">option 1</option>
<option value="2">option 2</option>
<option value="3">option 3</option>
<option value="4">option 4</option>
</select>
简短的答案是,仅使用JavaScript不可能可靠地确定元素上的所有侦听器。
长答案是没有列出所有连接的侦听器的标准机制。一些库保留使用该库已附加的侦听器列表,但不一定了解其他侦听器。可以通过测试相关的元素属性和属性(对每个元素的onclick,onchange,onblur等进行繁琐的测试)来找到添加在标记中或作为元素属性的侦听器。但是,除非找到了一个引用并将其变为可用,否则不可能找到使用addEventListener或attachEvent添加的侦听器(请参阅有关库的评论)。
同样,有些“委派”的侦听器看上去实际上是附加到元素的,而实际上它们是附加到父元素的。
$( '#mySelect' ).bind( {
'change': function( event ) {
},
'click': function( event ) {
}
});
$.each($._data( $("#mySelect")[0], "events" ), function(e) {
alert(e);
});
除了内联的事件,您还可以尝试以下操作:
alert(document.getElementById('mySelect').getAttribute('onclick'));
本文地址:http://jquery.askforanswer.com/huoqufujiadaoyuansudesuoyoushijianchulichengxu.html
文章标签:javascript , jquery
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!
文章标签:javascript , jquery
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!
评论已关闭!