jQuery, странно работает клик по кнопке-переключалке. Только 2 раза помогите!

dedalx
На сайте с 17.03.2008
Offline
63
1523

Вообщем мне надо чтобы при первом клике по кнопке #btn_addlist у меня открывался DIV с полем текста, а по второму клику закрывался (точнее чтобы одна кнопка делала два действия в зависимости от четности нажатия). Соотвественно по третьему опять открывался, по четвертому закрывался и т.д.

Проблема в том что у меня работает так:

Первый клик - открылось

Второй клик - закрылось

Третий клик - открылось

Четвертый клик - не закрылось (ничего не произошло)

Пятый клик - Добавилось вторая копия к той что уже была.

Вот код:


var addlistcliked=0;

$("#btn_addlist").live("click",function () {
if(addlistcliked==0)
{
$(".note_table").before('<div id="addlistdiv"><textarea name="addlist" id="addlist"></textarea></div>');
addlistcliked=1;
}
else if(addlistcliked==1)
{
addlistcliked=0;
$("#addlistdiv").hide();
}

});

То есть как я понимая переменная addlistcliked почему-то не устанавливается в 0 на третьем клике.

Подскажите в чем может быть проблема.

-МОЙ Скрипт портала Flash игр с автонаполнением (/ru/forum/733320) -МОЙ Скрипт адалт портала с продажей онлайн видео (платник) (/ru/forum/733327)
Николай В.
На сайте с 07.09.2006
Offline
62
#1

Лень разбираться, что в вашем примере не так, но правильно такие вещи делаются функцией toggle(fn, fn1) без использования этих ваших переменных-фиксаторов состояния.

http://docs.jquery.com/API/1.1/Events

dedalx
На сайте с 17.03.2008
Offline
63
#2

разобрался, ошибка банальна =)

Вместо hide() надо было юзать remove().

Николай В.
На сайте с 07.09.2006
Offline
62
#3

Точно. Но toggle() в любом случае кошерней переменных.

dedalx
На сайте с 17.03.2008
Offline
63
#4
Николай В.:
Лень разбираться, что в вашем примере не так, но правильно такие вещи делаются функцией toggle(fn, fn1) без использования этих ваших переменных-фиксаторов состояния.

http://docs.jquery.com/API/1.1/Events

Спасибо, сам искал не нашел, не в том разделе искал. Все работает.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий