Другая передающая переменная через функцию jQuery/JS проблема

Вот мой код:

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 (); но нажатие на объект, кажется, ничего не делает. Это работает, если я вынимаю код из функции и просто скопировать/вставить этого несколько раз и изменяю цели. Я не вижу его... Любая справка ценилась бы!

1
задан dallen 7 June 2010 в 01:36
поделиться

2 ответа

Мне непонятно, почему вы возвращаете новую функцию из lawyer () . Ваш звонок к юристу (...) не выполняет возвращенную функцию. Может ли это быть причиной?

Один из методов, который я часто использую, чтобы определить, запускается ли вообще какой-то конкретный бит кода, - это вставить предупреждение ("привет") или что-то в этом роде. Если вы не видите предупреждение, код не запускается.

2
ответ дан 3 September 2019 в 00:01
поделиться

Попробуйте следующее:

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")();
0
ответ дан 3 September 2019 в 00:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: