2013-05-02 44 views
1

我看到在我的JavaScript錯誤日誌許多這樣的錯誤:

Object expected

TypeError: Property '$' of object [object Object] is not a function

不幸的是,我不能複製當我自己嘗試時,這些瀏覽器中的錯誤。我突出顯示的那一行是導致錯誤的那一行。

我讀了一些關於「無衝突」模式,這可能是一個問題,但我看不到下面的代碼會出現什麼問題。

我使用jQuery 1.7.2,它是從我的服務器所提供的,而不是一個CDN:

<script type="text/javascript" src="/scripts/jquery/jquery-1.7.2.min.js"></script> 

我的代碼:

$(function() { 

    $('.imgCell').live("mouseenter", function() { 
     if($(this).find('a img').length > 1) { // this line throws the error 
      $(this).find('a img:eq(0)').hide(); 
     } 
    }); 

}); 

它不會出現會影響一個Chrome 26,Chromium 25,Firefox 10,Firefox 14,Firefox 16,Firefox 20,IE 10,IE 8,IE 9,Mobile Safari 6

+0

你如何引用jquery文件?是通過CDN還是在本地複製? – Liam 2013-05-02 10:56:03

+3

從jQuery 1.7開始,不推薦使用.live()方法。使用.on()附加事件處理程序。 – 2013-05-02 10:56:47

+0

@Liam我在本地有一個精簡版的jQu​​ery 1.7.2。我更新了我的問題。 – crmpicco 2013-05-02 10:58:42

回答

1

從jQuery 1.7開始, .live()方法是depre cated。使用.on()附加事件處理程序。

$(document).on("mouseenter",'.imgCell', function() { 
     //do something 
    }); 

如果你使用CDN,那麼你需要寫回退到它

<script type="text/javascript" src="//ajax.microsoft.com/ajax/jquery/jquery-1.9.2.min.js"></script> 
<script type="text/javascript"> 
if (typeof jQuery == 'undefined') { // load your JS file if CDN failed 
    document.write(unescape("%3Cscript src='/js/jquery-1.9.2.min.js' type='text/javascript'%3E%3C/script%3E")); 
} 
</script> 
+0

不,你不是在這裏使用團隊!應該完全等同於live:$(document).on('mouseenter','。imgCell',function(){...});順便說一句,這與OP的問題無關 – 2013-05-02 10:58:33

+0

文件不是標籤元素,而是一個對象:$(document)not $('document') – 2013-05-02 11:01:25

+0

@roasted eagles eyes :)更新爲你建議的 – 2013-05-02 11:02:36

0

使用 'jQuery的',而不是$簽署例如

jQuery(this).find('a img').length > 1 
+0

爲什麼會出現錯誤會導致錯誤的行,但是對行中'$'的引用沒有錯誤? – crmpicco 2013-05-02 11:15:33

+0

我沒有收到你,你能解釋你的評論嗎? 我以前有過同樣的問題,並應用瞭解決錯誤的解決方案。請讓我知道這對你有沒有用。 – dev 2013-05-02 15:00:16

+0

那麼,從你的回答可以看出,對'$'的引用是一個問題。但是在上面的行中有一個對'$'的引用,但它不會出錯。爲什麼會這樣?順便說一句,我沒有讓你失望。 – crmpicco 2013-05-03 08:35:00

相關問題