2013-05-29 75 views
1

我需要使用jQuery效果來顯示或隱藏div。但是,在執行以下任何一種方法後,我在控制檯中發生錯誤。

動畫首次完成,但動畫完成後,錯誤顯示在Safari控制檯中,我無法再對同一個div應用任何其他jquery方法。

我確信這是由於其他代碼在應用程序中搞亂了,因爲以下代碼在jsfiddle中工作正常。

$('#testDiv').slideDown() 
$('#testDiv').slideUp() 
$('#testDiv').show('slow') 
$('#testDiv').hide('slow') 
$('#testDiv').toggle('slow') 

錯誤

TypeError: 'undefined' is not a function (evaluating 'c.replace(bo,"-$1")') 

元素

<div id='testDiv'>text</div> 
+0

你能提供顯示此錯誤的完整樣例嗎?也許jsfiddle? –

+0

你的方法很好。這是你需要修復的東西。控制檯是你的朋友。 –

+0

當使用測試html頁面或jsfiddle進行檢查時,它可以正常工作。該錯誤只發生在我最近加入的項目中。 jquery庫文件沒有改變。但不知道爲什麼這個錯誤發生在應用程序中。 – Sathesh

回答

1

鑑於這些語句(所有引用):

  • the console doesn't show any error when using $('#testDiv').show() or $('#testDiv').hide()
  • this works fine when checking with a test html page or in jsfiddle.
  • the error occurs only in my project
  • The jquery library file is unaltered

這裏是認爲:

jQuery的show('slow')hide('slow')是在jQuery-1.0介紹。

可以提供字符串'fast'和'slow'分別指示持續時間爲200和600毫秒。

在JavaScript的任何東西(幾乎)可以是一個變量名:

enter image description here

在許多情況下,許多圖書館使用$象徵,它剛剛與jQuery的釋放多餘的流行,所以一些圖書館可以使用相同的$

在jQuery中,$符號是jQuery的簡寫符號。

建議:

確保jQuery的是最後 JS文件被加載,只是爲了檢查如果另一個JavaScript文件是壓倒一些的jQuery的功能。如果jQuery現在可以工作,它將被另一個JavaScript文件覆蓋。

那麼做到這一點作爲一個最終解決方案:

$.noConflict();這將釋放$爲其他庫,它使用它,並開始使用的,而不是jQuery$

This fiddle作品與jquery-1.0.1(找不到1.0),這裏是javascript代碼:

$(function() { 
    $('button#hideSlow').click(function() { $('p#hello').hide('slow'); }); 
    $('button#showSlow').click(function() { $('p#hello').show('slow'); }); 
}); 

資源:

+0

我會發布這個作爲評論,但評論不能超過600個字符,如果這個答案不適用,我會刪除它。 – Esteban

相關問題