0

「oncklick」関数で「notebutt」という名前のボタンを取得しました

関数は非常に単純で、ユーザーがボタンをクリックするとdivがfadeIn()になり、もう一度クリックするとdivがfadeout();する必要があります。

        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 がクリック時にランダムに点滅しますdiv の状態を確認しますか?

4

1 に答える 1

0

あなたの例では、notediv はすでに 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();
}
};
于 2012-11-02T15:31:18.427 に答える