2012-03-30 19 views
-2

Nötigen Rat.Ereignis zu Dynamic HTML hinzufügen

Muss ein Ereignis an onclick von span abhängig von meinem Zustand übergeben. Bitte helfen Sie.

hier ist mein aktueller Code:

var evt1 = true; 

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

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

Dank.

+0

Welche Spanne? Wo ist der HTML-Code? – aaaidan

+0

var str = ' user1215811

+0

sorry, als ich zum ersten mal versucht habe, meinen html-code zu posten, verschwindet er. – user1215811

Antwort

2

Können Sie nicht einfach die Bedingung im Event-Handler überprüfen und nichts tun, wenn es falsch ist?

0

Wenn Sie das Klick einige Code ausführen haben müssen, wenn evt1 wahr ist, würde ich raten, nur Code setzen in der onclick der tatsächlichen Spanne im HTML selbst.

Dynamisch Aufbau von HTML in Javascript wird in der Regel zu "Wut der Hungrigen". Und vor allem, wenn das HTML selbst noch mehr Javascript enthält. Es ist ein bisschen wie ein Albtraum.

Aber wenn dein Herz auf sie gesetzt ist, dann ist hier eine Möglichkeit, es zu tun:

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

Im Allgemeinen jedoch würde man die Saite einen ziemlich guten Grund für die Verwendung dieses Ansatzes gegeben haben muß, dass muss schließlich in ein HTML-Dokument eindringen, um nützlich zu sein.

Sie können auch Strings wie folgt aufbauen:

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

Aber auch dies ist ... nichts weniger als horrenden Codierung Stil.