2010-10-18 49 views
0

創建DOM元素IE不火因此,這裏是jQuery的片段,我使用創建我想點擊的onclick當通過jQuery

$("#someID").after('<div style="cursor:pointer; text-decoration:underline; display:inline;" onClick="alert(\'It Worked\');">Details</div>'); 

這在Firefox中沒有任何問題一個div其只是IE不會觸發事件。 div在#someID後面添加,但onclick不起作用。

+2

你試過'onclick'(用小寫'c')嗎? – rhino 2010-10-18 22:04:53

+0

...如果您使用jQuery以編程方式添加元素,爲什麼在天堂的名字中使用'onclick'呢?請參閱['click'](http://api.jquery.com/click/)。 – 2010-10-18 22:11:22

回答

3

你應該使用jQuery的click方法添加單擊處理程序,如:

$('<div style="cursor:pointer; text-decoration:underline; display:inline;">Details</div>') 
    .click(function() { alert('It Worked'); }) 
    .insertAfter('#someID'); 

這將工作,也就會快得多。 (瀏覽器不需要啓動Javascript解析器)

+0

這不是萬無一失的。看到我的答案。 – 2010-10-18 22:16:56

+0

@Moin:是的。你在說什麼? – SLaks 2010-10-18 22:18:02

+0

所以我曾嘗試使用之後,做了上面的相同的事情,它沒有工作,但切換到insertAfter和上面的解決方案,並得到它的工作,謝謝。 – 2010-10-20 14:14:40

0

使用.live().delegate()將事件綁定到頁面加載後(未來)創建的元素。

+0

我同意這一點,因爲無論被引用的元素是否已經在DOM中,live()都會綁定監聽器。我幾乎都放棄了使用click()。 – exoboy 2010-10-18 22:14:55

相關問題