JQuery切换显示和解雇

时间:2013-11-22 12:33:45

标签: jquery html

跟进我在此主题中发布的内容:

JQuery Add Hidden HTML Elements

这里是包含所有相关信息的词条: http://jsfiddle.net/3YGJP/2/

<input type='button' value='Show Picture' id='add'>
<div class='input'style='display: none;'>
<div class="form" id="inter">"other divs for more content"<div class="xbutton">x</div></div>

这对我有用(当我按下按钮时,div中的内容出现):

$("#add").click(function() {
    $(".input:first").toggle()
});

但是当我按下它时,我的另一部分JQuery删除了div。 (正如我原本打算做的那样)。

问题是,当我再次按下按钮时,div中的内容不再出现。我希望它像无休止的循环一样工作。我单击“显示表单”按钮,显示div中的内容,单击内容,现在内容已隐藏,然后再次单击该按钮,内容再次显示....等等... \ < / p>

这是关闭我的div的JQuery:

$('.xbutton').click(function(){
            $(this).parent().parent().remove();
        });

再次感谢!

3 个答案:

答案 0 :(得分:2)

为简单起见,您需要使用委托:

$(document).on("click", "#add", function() {
    $(".input:hidden:first").toggle()
});

答案 1 :(得分:0)

嗯,你正在删除你的元素。它将被完全删除,你无法取回它。当你想要“删除”它时,为什么不切换呢?

$("#add").click(function() {
    $(".input:hidden:first").toggle()
});

$('.xbutton').click(function(){
   $(this).parent().parent().toggle();
});

jsFiddle

更新

您实际上没有使用隐藏功能隐藏.input元素。但是你隐藏了.form元素。所以你应该再添加一个父选择器:

$(this).parent().parent().parent().hide();

为了使这更简单,您可以使用:

$(this).parents('.input').hide();

jsFiddle

答案 2 :(得分:0)

试试这个。工作得很好......

$("#add").click(function() {
      $(".input:first").toggle();
});

Demo