jQuery .toggle () не работает должным образом со второй функцией? - PullRequest
0 голосов
/ 14 июня 2010

Я пытаюсь создать кнопку, чтобы показать / скрыть div под ним, все работает нормально, я просто борюсь с последним битом!

Мне нужно различать, шоу это илискрыть действие, чтобы я мог передать переменную в другом месте, вот что у меня есть ..

$(this).find('.hide-close').click(
            function() {
                $(this).siblings('.dragbox-content').toggle(function() { 

                    alert($(this).parent().attr("id") + ' Show');

                    },function() { 

                    alert($(this).parent().attr("id") + ' Hide');

                    }

                );

            })
        .end()
        });

Если использовать следующий код, извлекая вторую функцию из toggle (), она работает ?!Но тогда у меня нет переменной show / hide.

$(this).find('.hide-close').click(
            function() {
                $(this).siblings('.dragbox-content').toggle(function() { 

                    alert($(this).parent().attr("id") + ' Show');

                    }

                );

            })
        .end()
        });

Заранее спасибо за любую помощь, надеюсь, это что-то действительно простое, я просто не могу видеть!:)

Ответы [ 2 ]

1 голос
/ 14 июня 2010

Вы можете использовать $(this).is(":visible") внутри функции, чтобы проверить, видна она или нет.

0 голосов
/ 14 июня 2010

Функция переключения jQuery предназначена для назначения функций, выполняемых при возникновении события (щелчка мыши). Чтобы фактически запустить событие, вам нужно вызвать функцию щелчка.

$('.dragbox-content').toggle(function() { 
        alert($(this).parent().attr("id") + ' Show');
    },function() { 
        alert($(this).parent().attr("id") + ' Hide');
    }
);

Используйте этот фрагмент кода, чтобы назначить функцию, которая будет выполняться при нажатии.

$(this).find('.hide-close').click(
function() {
    $(this).siblings('.dragbox-content').click();
})
.end();

и это, чтобы запустить событие.

...