这是我的代码:
function mouseOver(variable)
{
return function()
{
$(variable).fadeIn(100);
};
}
function mouseOut(variable)
{
return function()
{
$(variable).fadeOut(100);
};
}
function lawyer(var1, var2, var3, var4)
{
return function()
{
$(var1).bind('mouseenter', mouseOver(var2)).bind('mouseleave', mouseOut(var2)).click(
function()
{
$(var1).unbind('mouseenter').unbind('mouseleave');
$(var1).removeClass('off').addClass('on');
$(var3).bind('mouseenter', mouseOver(var4)).bind('mouseleave', mouseOut(var4));
$(var3).removeClass('on').addClass('off');
$(var4).hide();
});
}
}
lawyer("#group", ".b", "#group2", ".l");
这不起作用的原因是什么?
它的工作原理是它隐藏了$(var4).hide();,但点击该对象似乎没有做任何事情。如果我从函数中取出代码并只复制/粘贴几次并更改目标,它就可以工作。 我没有看到它...任何帮助将不胜感激!
答案 0 :(得分:2)
我不清楚你为什么要从lawyer()
返回一个新功能。您对lawyer(...)
的调用不会执行返回的函数。这可能是原因吗?
我常常使用一种技术来确定某些特定的代码是否完全运行,就是在那里插入alert("hi")
或其他东西。如果您没有看到警报,则表示代码未运行。
答案 1 :(得分:0)
试试这个:
function lawyer(var1, var2, var3, var4) {
return function() {
$(var1)
.bind('mouseenter', function() { mouseOver(var2); })
.bind('mouseleave', function() { mouseOut(var2); })
.click(function() {
$(var1).unbind('mouseenter').unbind('mouseleave');
$(var1).removeClass('off').addClass('on');
$(var3).
bind('mouseenter', function() { mouseOver(var4) })
.bind('mouseleave', function() { mouseOut(var4) });
$(var3).removeClass('on').addClass('off');
$(var4).hide();
});
}
};
lawyer("#group", ".b", "#group2", ".l")();