是否可以在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();
});
答案 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>