我有一个改变某些图像宽度的功能。当我将鼠标悬停在不同功能的不同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');
});
在我检查$(this).hasClass('cont1')
时,在mouseenter()函数中,我执行了一个有效的警报。之后我调用函数hey()。这是我的问题出现的地方。在调用函数hey()之后,我执行另一个警报(0),这也是有效的。但是之后的代码行没有被执行,最后一个警报(2)也不起作用。
答案 0 :(得分:3)
您的代码中存在错误。
替换:
var $imgContent = ('.imgContent');
使用
var $imgContent = $('.imgContent');
答案 1 :(得分: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)都指向同一个对象,所以本质上这些行是毫无意义的。