Вот мой код:
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 (); но нажатие на объект, кажется, ничего не делает. Это работает, если я вынимаю код из функции и просто скопировать/вставить этого несколько раз и изменяю цели. Я не вижу его... Любая справка ценилась бы!
Мне непонятно, почему вы возвращаете новую функцию из lawyer ()
. Ваш звонок к юристу (...)
не выполняет возвращенную функцию. Может ли это быть причиной?
Один из методов, который я часто использую, чтобы определить, запускается ли вообще какой-то конкретный бит кода, - это вставить предупреждение ("привет")
или что-то в этом роде. Если вы не видите предупреждение, код не запускается.
Попробуйте следующее:
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")();