2012-03-30 139 views
-2

需要一些建議。將活動添加到動態HTML

根據我的情況,需要將事件傳遞給span範圍。請幫忙。

這裏是我當前的代碼:

var evt1 = true; 

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

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

感謝。

+0

什麼範圍? HTML代碼在哪裏? – aaaidan 2012-03-30 04:05:22

+0

var str =' user1215811 2012-03-30 04:05:27

+0

對不起,當我第一次嘗試發佈我的HTML代碼消失。 – user1215811 2012-03-30 04:06:06

回答

2

難道你不能只檢查事件處理程序內部的條件,如果它是假的什麼也不做?

0

如果你需要有點擊執行一些代碼時evt1是真的,我會建議只是把代碼中的HTML本身實際跨度onclick

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

在Javascript中動態構建HTML通常會「憤怒飢餓的人」。尤其是如果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>"; 

但同樣,這就是 - 什麼都不缺可怕編碼風格。