如何使用javascript或jquery获取或获取按钮单击事件侦听器

时间:2016-06-22 09:56:34

标签: javascript jquery html

是否可以在JavaScript或jQuery中获取或获取按钮元素的click事件侦听器?怎么样?

例如HTML,

<button id="btn1">Button 1</button> 

和jquery:

$("#btn1").on("click", function() {
     alert("Test");
});

我想做这样的事情。

// this is what i'm asking ( capture the click event of the button 1)
var f = $("#btn1").attr("onclick") --> undefined;

$("#btn1").on("click", function() {
     somefunction();
     f();

});

1 个答案:

答案 0 :(得分:0)

您可以使用元素的onclick属性来获取onclick侦听器(即使用HTML节点onclick属性或onclick属性附加的代码。相应的DOM元素)。

var button = document.querySelector("#the-button");
var onclick = button.onclick;
console.log(onclick);
onclick()
<button id="the-button" onclick="alert('thing');">thing</button>

无法通过设计获取附加addEventListener 的听众

可以获取附加了jQuery的监听器。 You can have a look at this question for more information.但我强烈建议不要这样做。它基本上包括黑客入侵库 - 即访问您不应访问的数据 - 并且从版本到另一个版本高度不一致。

无论如何,如果要在不覆盖以前行为的情况下向按钮添加其他行为,则无需保存。 addEventListener或jQuery的on不会删除任何以前附加的侦听器。

var button = document.querySelector("#the-button");
button.addEventListener("click", function(){
  alert('something else');
});
<button id="the-button" onclick="alert('thing');">thing</button>