2016-06-22 12 views
-1

JavaScriptまたはjQueryでbutton要素のclickイベントリスナーを取得または取得できますか?どうやって?例えばjavascriptまたはjqueryを使用してボタンクリックイベントリスナーを取得または取得する方法

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

'buttonElement.addEventListener( "クリック"、機能(clickEvent){\ *あなたのクリックイベントで何かを* \});' –

+0

クリック "イベントは、" どのオブジェクトです将来の使用のために空のグローバルjsonに簡単に格納することができます。 –

+0

@Roqueタイトルを読んでください、私はそれを追加しないで、クリックイベントをキャプチャします。 – esthrim

答えて

0

あなたはonclickリスナー(すなわちコードHTMLノードonclickプロパティを使用して接続または対応するDOM要素のonclick性質を持つ)を取得するためにあなたの要素のonclickプロパティを使用することができます。 addEventListenerが取り付けられ

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

リスナーは、設計によってフェッチすることができません。

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>

+0

これはevalを使用する唯一の方法ですか? – esthrim

+0

私が知る限り、はい。 onclick属性は、HTMLに入力するときの文字列にすぎません。 –

+0

私の悪い! 'element.onclick'を使って直接アクセスすると、その機能が実現します。この質問を編集させてください。 –

関連する問題