2011-06-01 138 views
0

我有一個<script>標記中下面的代碼:。點擊事件似乎並不火

$(document).ready(function(){ 
    $("#toolbarReset").click(function() { 
    alert("I've been clicked! Oh, what a world!"); 
    }); 

    ... other, unrelated functions, which all seem to work fine  

}); 

...以下一些HTML:

<span id="toolbarReset" style="line-height: 18px; width: 50px; height: 21px; padding: 0pt 7px 0pt 3px;"> 
    Reset 
</span> 

...但是當我點擊「重置」字樣時,沒有任何反應。

已嘗試使用 「id」 設爲 「類」 進行更改,並適當地更新jQuery代碼(「#toolbarReset」成爲「toobarReset」)。嘗試在.click事件中輸入一些代碼以輸出到Firebug控制檯,並驗證「toolbarReset」是DOM中的唯一ID。

+2

如果您刪除所有其他的腳本,它的工作原理?您的跨度是否動態添加到DOM?我沒有看到你發佈的內容有什麼問題。 – Chris 2011-06-01 22:08:10

+0

你是否檢查它實際運行的ready函數? – Dave 2011-06-01 22:10:04

+0

也許嘗試驗證您的HTML以及看看是否有任何錯誤 – 2011-06-01 22:12:34

回答

0

原來是一個計時問題。我的jQuery代碼是在元素加載到頁面之前運行的,因爲我將它們放置在相互之間 - 因此jQuery試圖綁定到一個尚不存在的ID。

0

似乎爲我工作,你使用什麼瀏覽器?

http://jsfiddle.net/YLCff/

+0

我在Firefox 4和Chrome 11上試過了,兩者都有效。 – 2011-06-01 22:10:10

+0

使用Firefox 4 – jefflunt 2011-06-01 22:13:13

+0

我建議通過W3C驗證您的頁面,看看是否有雜散標籤導致問題。 – 2011-06-01 22:18:27

0

也許你有一個以上的#toolbarReset,如果是這樣的話,它不會工作,直到您刪除其他ID。

+0

想到這一點。爲我的實時頁面創建了一個「查看源代碼」,並確認只有兩個「toolbarReset」出現在jQuery代碼中,(2)在span標籤 – jefflunt 2011-06-01 22:15:23

+0

中檢查是否嵌入了所有需要的jquery文件警報,這很奇怪,因爲代碼正在爲我工​​作!嘗試jAlert(消息,[標題,回調]) – Al3bed 2011-06-01 22:30:21

+0

#toolbarReset表示html元素的id。 HTML規範規定,id是唯一的。請參閱http://www.w3.org/TR/html401/struct/global.html#h-7.5.2 – mrk 2011-06-01 23:11:00

-1

我檢查了它在我的瀏覽器中的代碼。無論如何,嘗試使用.on而不是.click。

$("#toolbarReset").on('click',function() { 
// watever code 
} 
+0

帶有事件'click'的參數的.click方法和.on方法完全相同。請避免回答那些非常陳舊的問題,並且已經有了他們可以接受的答案,除非您有一些新的或有幫助的/完整的信息。 – 2014-08-15 08:34:09