2015-06-10 67 views
1

我現在很沮喪。我一直試圖在過去的半小時內讓event delegation工作。我嘗試使用.on,Chrome告訴我這不是一個功能。.on或.live功能都不被識別

我搜索了這個問題

$(...).on is not a function - jQuery Error

,並認爲這是因爲我使用JQuery的早期版本。正因爲如此,我決定包括來自谷歌開發者網站上的最新版本的jQuery

https://developers.google.com/speed/libraries/

這裏是我包括我的body標籤結束

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 

我認爲這會解決問題

如果我點擊View Source (Ctrl + u)下的鏈接並點擊JQuery文件,我就會得到源代碼,這讓我相信它已經正確加載了。

我也嘗試使用.live函數,發現這不是函數。有幾乎沒有任何機會,我有一個語法錯誤或者

$("td > a")[0].on("click", function() { alert('hi') }) 

然而,我從控制檯

Uncaught TypeError: $(...)[0].on is not a function at :2:16 at Object.InjectedScript._evaluateOn (:895:140) at Object.InjectedScript._evaluateAndWrap (:828:34) at Object.InjectedScript.evaluate (:694:21)

我也試圖複製和粘貼的精縮jQuery代碼轉換爲JavaScript文件中的以下輸出,幷包括那種方式,但也失敗了。

這是Content Distribution Network(CDN)的問題還是版本本身的問題?

我知道JQuery 2只支持現代瀏覽器,但我使用的是Google Chrome。我無法理解問題是什麼。

有沒有其他人遇到過這個問題?最受讚賞的是幫助或建議。

編輯:

`jquery.fn.jquery` returns `2.1.3` 
+0

你可以添加html嗎? –

+1

在瀏覽器中輸入jQuery.fn.jquery並告訴我輸出結果 –

+0

返回'2.1.3' –

回答

3

您正在嘗試一個jQuery方法適用於原始DOM對象。使用指定的索引,不再有jQuery對象被選中。

此外,您構造on()函數的方式不使用事件委託。試試這個:

$(document).on("td > a:eq(0)", "click", function() { alert('hi') }); 
+2

'td> a:eq(0)'是否更符合jQuery語法? –

+0

這完美的作品!我會在4分鐘內接受這個答案。非常感謝 –

+0

這也適用於'on('click')'語法 –