2012-03-30 11 views
-2

Neesいくつかのアドバイス。動的HTMLにイベントを追加

私の状態によっては、スパンのonclickにイベントを渡す必要があります。助けてください。

var evt1 = true; 

var my_evt = (evt1 ? function() { alert('test'); } : null); 

var str = "<span onclick=my_evt></span>"; 

感謝:

は、ここに私の現在のコードです。

+0

何スパンですか? HTMLコードはどこですか? – aaaidan

+0

var str = ' user1215811

+0

申し訳ありませんが、最初に自分のhtmlコードを投稿しようとしましたが、それは消滅します。 – user1215811

答えて

2

イベントハンドラ内で条件をチェックするだけで、偽であれば何もしないのですか?あなたはevt1がtrueの場合、クリックは、いくつかのコードを実行する必要がある場合

0

、私はちょうどHTML自体に実際スパンのonclickにコードを入れてお勧めします。

<span onclick="if (evt1) { myEvt() }">...</span> 

動的にHTMLをJavascriptで構築するのは、通常、「飢えた人を怒らせる」ことです。特にそのHTML自体にさらに多くのJavascriptが含まれているとします。悪夢のようなものです。

しかし、あなたの心は、それに設定されている場合は、ここでそれを行うための一つの方法です。しかし一般的には

var str; 
if (evt1) { 
    str = "<span onclick=\"function() { alert('test'); } \"></span>"; 
} else { 
    str = "<span></span>"; 
} 

は、文字列のことを考えると、あなたはこのアプローチを使用するためのかなり良い理由を持っている必要があるだろう、有用であるためには、最終的にHTML文書に変換する必要があります。

var str = "<span" + (evt1 ? " onclick=\"function() { alert('test'); }\"" : "") + "></span>"; 

をしかし、再び、これは恐ろしいコーディングスタイルの短いものは何も...ではありません:

また、このような文字列を構築することができます。

関連する問題