运行功能两次后,Append元素不显示

时间:2012-09-10 22:41:42

标签: javascript html5 jquery-ui jquery

我有一个我正在处理的功能,基本上如果我在显示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(){});
    });
});

2 个答案:

答案 0 :(得分:0)

在您的点击处理程序中:

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

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

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

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

答案 1 :(得分:0)

这是因为这行

overlay_content_inner.empty();

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

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