2013-07-16 47 views
0

我有一個功能,它可以改變一些圖像的寬度。當我將鼠標懸停在另一個不同的div上時,會發生這種情況。由於某種原因,被調用函數只執行一些代碼行,然後停止。函數無法創建一個變量和使用jQuery?

function hey() 
{ 
    alert(0); 
    var $imgContent = ('.imgContent'); 
    $imgContent.css("width","10%"); 
    alert(2); 
} 

var $content = $('.content'); 
$content.mouseenter(function() { 

    $content.removeClass('full').addClass('partial'); 
    $(this).addClass('full').removeClass('partial'); 
    $(this).find('.img1').css('display','none'); 
    $(this).find('.img2').css('display',''); 

    if($(this).hasClass('cont1')){ 
     alert(1); 
     hey(); 
    } 

    if($(this).hasClass('cont2')){ 

    } 

    if($(this).hasClass('cont3')){ 

    } 

    if($(this).hasClass('cont4')){ 

    } 
}).mouseleave(function(){ 
     $(this).find('.img1').css('display',''); 
     $(this).find('.img2').css('display','none'); 
     $(this).removeClass('full').addClass('partial'); 


    }); 

在了mouseenter()函數,當我檢查,如果$(this).hasClass('cont1')然後我進行警告,其中工程。之後,我會調用函數hey()。這是我的問題出現的地方。在調用函數hey()後,我執行另一個警報(0),這也起作用。但是之後的代碼行不會被執行,而最後一個警報(2)也不起作用。

+0

你應該檢查控制檯,它應該在很大程度上指向正確的方向。 –

+1

當你有這樣的問題時,只需檢查你的控制檯而不是插入一百萬條警報就容易多了。 –

回答

3

代碼中有錯誤。

替換:

var $imgContent = ('.imgContent'); 

隨着

var $imgContent = $('.imgContent'); 
+0

哇,簡單的代碼錯誤。非常感謝你的朋友,我在這個問題上停留了很長時間。 – user2441391

+0

沒問題。 – Rivers

0

您的jQuery對象定義錯誤。

jQuery()

的jQuery() - 這也可以寫成$() - 搜索通過DOM對所提供的選擇器匹配的任何元素,並創建一個新的jQuery對象,引用這些元素

所以你的情況,你應該有:

var $imgContent = $('.imgContent'); 
$imgContent.css("width","10%"); 

另外,需要注意的是,在你的0123是非常重要的功能您參考:

$content.removeClass('full').addClass('partial'); 
$(this).addClass('full').removeClass('partial'); 

$內容和$(本)都指向同一個對象,所以在本質上,這些線是沒有意義的。

相關問題