【发布时间】:2016-02-01 01:32:40
【问题描述】:
我如何在第二次点击时slideUp() li 元素?
我尝试使用.data() 收集点击次数,但这种方法破坏了我在 jQuery 中应用的 css(border)。
var paragraph = $('p');
var paragraphParent = $('li');
paragraph.addClass('displayNone');
paragraphParent.on('click', function () {
paragraph.stop().slideUp();
$(this).children().stop().slideDown();
});
.displayNone{
display:none;
}
ul{
list-style-type: none;
padding: 0;
margin: 0;
}
li{
width: 200px;
font-size: 20px;
background-color: lightblue;
color: black;
text-align: center;
margin-top: 5px;
padding-bottom: 3px;
}
li:hover{
cursor: pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li>Item 1
<p>Lorem ipsum...</p>
</li>
<li>Item 2
<p>Lorem ipsum...</p>
</li>
<li>Item 3
<p>Lorem ipsum...</p>
</li>
<li>Item 4
<p>Lorem ipsum...</p>
</li>
</ul>
【问题讨论】:
-
统计点击次数的代码在哪里?我认为这种尝试会更相关。
-
你试过用
slideToggle吗? -
是的,这种行为真的很奇怪,因为它用段落文本替换了任何“项目”。 @乔恩
var $this = $(this); var clickCount = ($this.data("click-count") || 0) + 1; $this.data("click-count", clickCount); -
只使用引导折叠代替
标签: javascript jquery animation slide