2015-09-26 92 views
-2

你好我有我的div内容消失jquery调用hide()和show()后,它消失的问题。Div内容消失后jquery.hide()和显示()

<li class="gg3"><a class="link" href="#" data-rel="content3">Link1</a></li> 
<div class="content-container"> 
    <div id="content3" class="rightWrapperBookmarks"> 
     <c:forEach var="house" items="${user.houses}"> 
     <div class="houseBox"> 
      ${house.mailbox} 
      <br> ${house.house} 
      <br> ${house.address} 
      <br> 
      <br> 
      <a href="<c:url value="/profile.jsp"> 
      <c:param name="username" value="${house.username}" /> 
      </c:url>">Go to user profile</a> <br> <br> 
     </div> 
     </c:forEach> 
    </div> 
</div> 

下面是我的jquery函数,它在我的div之间交换,以在我的页面上显示不同的内容。然而,在他们之间交换,使每个内容foreach消失。

$(document).ready(function() { 
    $(".link").click(function(e) { 
     e.preventDefault(); 
     $('.content-container div').hide(); 
     $('#' + $(this).data('rel')).show(); 
    }); 
}); 

如何让这个内容持久隐藏和显示?

+0

编辑我的帖子吧。 – JonCode

+0

是啊忘了把它放进去。对不起! – JonCode

+0

我刚刚在[jsFiddle](https://jsfiddle.net/vfd6bnnc/)中重新创建了这一点,并且所有内容都按预期工作 - DIV隐藏,但在通过Chrome中的开发工具检查时隐藏了内容 –

回答

2

变化

$('.content-container div').hide(); 

到:

$('.content-container > div').hide(); 

这只是隐藏眼前的孩子,不是所有的后裔资料核实。

您遇到的问题是您正在显示.content3,但其中的.houseBox DIV仍被原始.hide()隐藏。

+0

这很有道理!感谢您的:) – JonCode

0

你的处理CSS代码。这里这个CSS代码添加。 这里这个码的jsfiddle(https://jsfiddle.net/hyoeqwzL/)工作

.hide {display:none!important} 
.show {display:block!important} 

这里的javascript代码

$(".link").on("click",function(e){ 
    e.preventDefault(); 
    $('.content-container div').addClass('hide').removeClass('show'); 
    console.log('#'+$(this).data('rel')) 
    $('#' + $(this).data('rel')).addClass('show').removeClass('hide'); 
    return false; 
});