0

我有一个正在处理的功能,基本上,如果我在显示 hiddend 后单击触发器,但是在单击触发器两次后,要显示的元素就消失了。我将不胜感激这方面的任何帮助。我在http://www.jsfiddle.net/AUhPc/包含一个 jsFiddle

$(function() {
/* Creating the overlay content elements needed */
    var overlay = $('<div class="overlay"></div>').appendTo('body');
    var overlay_content = $('<div class="overlay-content"></div>').appendTo(overlay);
    var overlay_content_inner = $('<div class="overlay-content-inner"></div>').appendTo(overlay_content);
    var btn_remove = $('<i class="i-remove">Close</i>').appendTo(overlay_content);
    //$('.user-comment-item').css({"position":"relative"})

    $('.my-list li .button').on("click", function() {
        var button = $(this);
//      overlay_content_inner.empty();
        overlay.fadeIn(300,function(){
            button.find('.user-comment-list').css({"display":"block"}).appendTo(overlay_content_inner);
        });
    });
    btn_remove.click(function(){
        overlay.fadeOut(300,function(){});
    });
});
4

2 回答 2

0

在您的点击处理程序中:

$("my-list li.button").off("click");

删除点击处理程序。您还可以使用:

$("my-list li.button").one("click", callback);

如果您只希望点击回调发生一次。

于 2012-09-10T22:46:42.773 回答
0

这是因为这条线而发生的

overlay_content_inner.empty();

您正在清除 overlay_content_inner div 中的内容,因此下次单击按钮时不会显示数据。

尝试删除该行,然后尝试..这应该不是问题..

于 2012-09-10T23:11:39.870 回答