Javascript 函数在创建变量和使用jquery时不起作用?
我有一个函数可以改变一些图像的宽度。当我将鼠标悬停在不同函数中的不同div上时,就会发生这种情况。出于某种原因,被调用函数只执行一些代码行,然后停止Javascript 函数在创建变量和使用jquery时不起作用?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个函数可以改变一些图像的宽度。当我将鼠标悬停在不同函数中的不同div上时,就会发生这种情况。出于某种原因,被调用函数只执行一些代码行,然后停止 function hey() { alert(0); var $imgContent = ('.imgContent'); $imgContent.css("width","10%"); alert(2); } var $content = $('.content'); $content.mouseenter(fu
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)也不起作用。您的代码中有一个错误
替换:
var $imgContent = ('.imgContent');
与
您的代码中有一个错误 替换:
var $imgContent = ('.imgContent');
与
jquery对象定义中有一个错误 Per: jQuery()-也可以写成$()-在DOM中搜索与提供的选择器匹配的任何元素,并创建引用这些元素的新jQuery对象 因此,在您的情况下,您应该:
var $imgContent = $('.imgContent');
$imgContent.css("width","10%");
另外,需要注意的是,在.mouseenter()
函数中,您提到:
$content.removeClass('full').addClass('partial');
$(this).addClass('full').removeClass('partial');
$content和$(this)都引用同一个对象,因此本质上这些行是没有意义的。您在jquery对象定义中有一个错误 Per: jQuery()-也可以写成$()-在DOM中搜索与提供的选择器匹配的任何元素,并创建引用这些元素的新jQuery对象 因此,在您的情况下,您应该:
var $imgContent = $('.imgContent');
$imgContent.css("width","10%");
另外,需要注意的是,在.mouseenter()
函数中,您提到:
$content.removeClass('full').addClass('partial');
$(this).addClass('full').removeClass('partial');
$content和$(this)都指向同一个对象,因此本质上这些行是没有意义的。你应该检查控制台,它应该在大部分时间为你指明正确的方向。当你遇到这样的问题时,只检查控制台比插入一百万条警报要容易得多。你应该检查控制台,它应该在大部分时间为您指明正确的方向。当您遇到这样的问题时,只需检查控制台就比插入一百万条警报容易得多。哇,一个简单的代码错误。非常感谢,老兄,我在这个问题上纠结了很长时间。哇,一个简单的代码错误。非常感谢,老兄,我在这件事上耽搁了很长时间。