我写了一个jquery代码,它将在悬停时扩展某些元素。我希望代码只在不扩展时才展开。这是我的代码。它似乎没有正常工作。
$(document).ready(function() {
var labelstatus = 0;
});
$(document).ready(function() {
$("a.rm").hover(function () {
if (labelstatus != 1){
$("#expensereduction,#envimpact,#mtextlft,#initaud,#energaud").fadeOut();
var currentFontSize = $('.initiate').css('font-size');
var currentFontSizeNum = parseFloat(currentFontSize, 10);
var newFontSize = currentFontSizeNum*3;
$('.initiate').delay(500).animate({
fontSize: newFontSize
});
return false;
var labelstatus = 1;
}
else {
}
});
});
答案 0 :(得分:7)
此...
return false;
var labelstatus = 1;
应该是......
labelstatus = 1;
return false;
......而这......
$(document).ready(function() {
var labelstatus = 0;
});
应该是......
var labelstatus = 0;
return
语句之后的代码将无法运行
使用var
使labelstatus
功能本地化
您真的不需要两个$(document).ready(function() {
来电。将您的代码放在一个,然后您可以使labelstatus
本地处理该处理程序,以便内部的所有代码都可以使用它。
答案 1 :(得分:3)
您在函数内声明局部变量,因此它们彼此独立。此外,每次都会得到一个新变量,因此之前的值不会持续存在。
此外,在分配变量之前,您正在调用return
,该变量将退出函数,因此分配将永远不会发生。
您需要在函数外部的范围内声明变量:
$(document).ready(function() {
var labelstatus = 0;
$("a.rm").hover(function () {
if (labelstatus != 1){
$("#expensereduction,#envimpact,#mtextlft,#initaud,#energaud").fadeOut();
var currentFontSize = $('.initiate').css('font-size');
var currentFontSizeNum = parseFloat(currentFontSize);
var newFontSize = currentFontSizeNum * 3;
$('.initiate').delay(500).animate({
fontSize: newFontSize
});
labelstatus = 1;
return false;
}
else {
}
});
});
另外:parseFloat
函数没有基数参数。
答案 2 :(得分:0)
labelstatus
将不会设置为1
,因为此功能已在之前的行中返回。