ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScriptでイベントコードを動的に追加_JavaScriptスキル

JavaScriptでイベントコードを動的に追加_JavaScriptスキル

WBOY
リリース: 2016-05-16 18:58:08
オリジナル
964 人が閲覧しました
メソッド 1、setAttribute
var obj = document.getElementById("obj");
obj.setAttribute("onclick", "javascript:alert('test');"); 🎜>ここでは、onclick 属性を指定するために setAttribute を使用します。これはシンプルで理解しやすいです。
ただし、IE は setAttribute 関数をサポートしていないのではなく、setAttribute の使用をサポートしていません。オブジェクト属性やコレクション属性、イベント属性などの特定の属性を設定する場合、つまり、setAttribute を使用してスタイル、onclick、onmouseover 属性を設定する場合は、IE では機能しません。

方法 2、attachEvent と addEventListener を使用します IE は、attachEvent をサポートします
obj.attachEvent("onclick", Foo)
function Foo()
{
alert("Test");
}
も一緒に書くことができます
obj.attachEvent("onclick", function(){alert("Test");}); addEventListener
obj.addEventListener("click", Foo, false);
function Foo()
{
alert("test")
も一緒に書くことができます
obj.addEventListener("click", function(){alert("test");}, false);
attachEvent イベントには onclick などがありますが、addEventListener には on がないことに注意してください。クリックしてください。
ところで、addEventListener の 3 番目の引数 (めったに使用されません) useCapture - true の場合、useCapture はユーザーがキャプチャを開始したいことを示します。キャプチャが開始されると、指定されたタイプのすべてのイベントは、ツリー内でその下にある EventTarget にディスパッチされる前に、登録された EventListener にディスパッチされます。ツリー上で発生しているイベントは、キャプチャを使用して指定された EventListener を起動しません。
総合アプリケーション
if (window.attachEvent)
{
//IEのイベントコード
}
else
{
//他ブラウザのイベントコード
}

メソッド 3、event = function

例: obj.onclick = Foo; これは複数のブラウザでサポートされていますが、これは古い仕様です (メソッド 2 はDOM2仕様)ですが、使いやすいので多くの場面で使われています。
これが私の解決策です:
function show(){
alert("Hello, world!!!")
}
obj.setAttribute('onclick' ,document .all ? eval(function(){show()}) : 'javascript:show()');
非常にシンプルでブラウザと互換性があるようですが、他の効果があるかどうかはわかりません。それを交換するより良い方法はありますか?
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート