0

我有一个功能可以改变一些图像的宽度。当我将鼠标悬停在不同功能中的不同 div 上时,就会发生这种情况。由于某种原因,被调用的函数只执行了几行代码,然后就停止了。

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() 后,我执行另一个 alert(0) ,这也有效。但是之后的代码行没有被执行,最后一个 alert(2) 也不起作用。

4

2 回答 2

3

您的代码中有错误。

代替:

var $imgContent = ('.imgContent');

var $imgContent = $('.imgContent');
于 2013-07-16T19:57:44.017 回答
0

您的 jquery 对象定义有误。

每个jQuery()

jQuery() — 也可以写成 $() — 在 DOM 中搜索与提供的选择器匹配的任何元素,并创建一个引用这些元素的新 jQuery 对象

所以在你的情况下你应该有:

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

此外,重要的是要注意,在您的.mouseenter()功能中,您指的是:

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

$content 和 $(this) 都引用同一个对象,所以本质上这些行是没有意义的。

于 2013-07-16T20:53:23.097 回答