Webアプリを作る際にサーバサイドでアプリケーションフレームワークなどを使っている場合、
生成されたHTMLのonclick属性にすでに関数がセットされている場合があります。(wicketとかwicketとか…)
jQueryを使って、設定されているクリックイベントよりも前に
任意の関数を差し込みます。
prependEvent
prependEvent = function(target, newEvent) {
var clickHandler;
clickHandler = target[0].onclick; // イベントを退避
target[0].onclick = null; // クリックイベントをリセット
target.click(newEvent); // 差し込み
target.click(clickHandler); // その後にオリジナルをしまう
};
↓こんなカンジで使います。
HTML
<input id="confirmButton" type="button" onclick="alert('first');" value="test input"/>
JavaScript
secondFunction = function() {
alert("second");
};
prependEvent($("input#confirmButton"), secondFunction);
second -> first の順でアラートが出現します。