2010-11-30 19 views
0

我們有一個頁面,這個結構:JQuery - 爲什麼現場工作,但點擊沒有?

<script type="text/javascript" src="/js/lots.of.javascript.js"></script> 
<jsp:include page="html.jsp"/> 

的JavaScript有很多$(function(){...}塊。在一個區塊中,我們嘗試了一個$("#mylink").click(...),但這不起作用。然而相應的.live('click' DID工作。爲什麼是這樣?


更新:更具體地說我假設的點擊和現場陳述運行後,該鏈接已經被添加到DOM爲紐帶包含在html.jsp文件和報表是$(function(){...}執行塊...因此,我不知道爲什麼點擊不起作用...

+0

您可以添加html.jsp中的內容和您正在做$(「#mylink」)的完整功能。 – 2010-11-30 17:29:47

回答

2

看到沒有代碼,顯而易見的原因是元素是在事件被定義後創建的。這是使用.live()的主要原因。

+0

查看更新的帖子 – 2010-11-30 17:25:37

0

沒有看到更多的代碼,沒有辦法知道確切的,但我知道這種情況發生的唯一方法是如果您的控件(在這種情況下 - id =「mylink」的項目)創建後的頁面已加載。

+0

查看更新的帖子.. – 2010-11-30 16:40:00

0

我想這個元素是在頁面加載後被添加到DOM的。方法.live確保後面添加的元素將獲得正確的事件處理程序。

+0

查看更新的帖子。 – 2010-11-30 16:38:15

0

這可能是以後創建的ID爲#mylink的元素,而不是DOM準備就緒時。

+0

查看更新後的帖子。 – 2010-11-30 16:36:55

相關問題