2012-10-12 169 views
-5

我在網站上使用jQuery進行動態內容行爲。我有一個錯誤:TypeError:show不是函數

TypeError: $("#id").attr("src", thisContent.attr("data-attr")).show is not a function

首先我以爲它是瀏覽器相關的,但事實證明,它不是。錯誤在此行上:

$('#id').attr('src', thisContent.attr('data-attr')).show(); 
+0

什麼是'thisContent'? – VisioN

+0

'var thisContent = $(this).find('。content');' – Pavlo

+0

似乎只有fire-fox版本問題 –

回答

3

如果.attr()第二個參數是undefined,吸氣將被調用。 似乎是調用getter而不是setter。

消氣:

$(...).attr(String) // returns String which has no method .show() 

二傳手:

$(...).attr(String, String) // returns jQuery object, which has method .show() 

thisContent.attr('data-attr')可能會返回在某些情況下undefined,併爲此吸氣劑被調用,而不是期望的setter方法。

0

請嘗試以下操作。

將您的data-attr重命名爲其他名稱。

查看數據attr是否存在於thisContect.attr中。

記錄下列行並轉到控制檯。在那裏你會看到數據attr不存在或者位於錯誤的地方。

console.log(thisContent);

0

隨機問題,但可以肯定...

您是否通過CDN訪問jQuery?

如果你是這樣,兩臺機器都可以加載jQuery代碼嗎?兩者都可以看到沒有問題的CDN(都連接到互聯網)?和其他位的jQuery代碼正在工作?

瀏覽器在呈現/處理JS的方式上存在差異是非常罕見的,因爲它是一種非常成熟的語言。所以我的建議是,不是基於瀏覽器的問題,而是代碼之外的東西。

只是一個想法..