サーバーへのajax呼び出しを使用して構築されたいくつかのページを扱っているので、.on()
イベントハンドラーを新しいアイテムにアタッチすることに依存しています。
ただし、可能であれば、javascript:function()
イベントハンドラーがである場合は常に、古い関数に依存して関数を呼び出す方が効率的かどうか疑問に思いましたclick
。
これが例です。
サーバーからリンク要素を取得しますa
:
<a href="javascript:doMoreStuff()" class="classThatDoesMore">Do More!</a>
そして私はそれを次のようにドキュメントに挿入します:
// ajax call and so
$(this).html(response);
「もっとやる」には、2つの方法があります(他の方法もあるかもしれませんが、私はそれらに気づいていませんが、どんな提案も歓迎します!):
$(document).on("click",".clssThatDoesMore",function(){ // I need (document)
// here something will be done
});
また
doMoreStuff(){
// here something will be done as well
}
私の知る限り、両方のソリューションはほとんどクロスブラウザーです(テスト済みhref="javascript:function()"
で、少なくともIE8に戻ります)が、間違っている場合はお知らせください。
過剰な.on()
「リスナー」がブラウザに大きな負荷をかける可能性があるのではないかと思っていたので、頼るほうがよいjavascript:function()
のか、それとも逆に、.on()
リソースをまったく必要とせず.on()
、ページに複数のリスナーがいるのか、問題はありません。
PS onclick="doMoreStuff()"
Safariでは機能していなかったので放棄しましたが、FFではまったく同じコードが機能していたので、eを使用して実行した場合はSafariでも機能していましhref="javascript:doMoreStuff()
た。
PPSこれは同じ古い質問jsv。jqueryではありません。私にとって重要なのは、一般的にどちらがより効率的かということではありません。この特定のタスクを達成するための最良の方法を理解したいと思います:-)