проблемы с fadeIn()/fadeOut(); jquery

получил кнопку с именем «notebutt» с функцией «oncklick»

функция очень проста: пользователь нажимает на кнопку, а div - fadeIn(), нажмите еще раз, и div должен исчезнуть ();

        notebutt.bind("click", function () {
        var notediv = $(this).parent().find("div.notediv");
        // checking is notediv exist already, if not, creating one and do fadeIn(150);
        if (!notediv) {
        notediv = $('<div class="notediv" contenteditable="true"></div>');
        notediv.appendTo($(this).parent());
        notediv.offset({top: posT-47}).fadeIn(150);
        } else {
        // if got notediv created before, i must show or hide it with hideorshow(notediv);
                hideorshow(notediv);
        }

});
    // func that check's is div was showned or not
function hideorshow(div){
if ($(div).is(':visible')) {
    //hide if visible
    div.fadeOut();
} else {
        div.offset({top: posT-47});
        div.fadeIn();
}
};

на первый взгляд он работает как должен, но после 5-10 нажатий на кнопку все идет не так, div случайным образом мигает при нажатии, как будто fadeIn и fadeOut запускаются одновременно, или друг друга, есть ли способ сделать какой-то правильный триггер для проверить состояние div?


person user1330964    schedule 02.11.2012    source источник
comment
используйте toggle() — api.jquery.com/toggle   -  person srijan    schedule 02.11.2012
comment
мне нужно что-то вроде var status = 0;   -  person user1330964    schedule 02.11.2012
comment
использовать позже, например, если (статус == 1) {сделать что-то и скрыть div} else {сделать что-то другое}, но я не могу понять, как это работает   -  person user1330964    schedule 02.11.2012


Ответы (1)


В вашем примере noteiv уже является объектом jquery:

function hideorshow(div){
if (div.is(':visible')) { //replace $(div) by div
    //hide if visible
    div.fadeOut();
} else {
        div.offset({top: posT-47});
        div.fadeIn();
}
};
person A. Wolff    schedule 02.11.2012
comment
не работает такая же беда, сначала работает нормально а потом начинает глючить - person user1330964; 02.11.2012