我有以下列表:
<div id="topicListContainter">
<ul id="sList" class="sList">
<li id="itemList_11">
0. updated <span class="closeBox" id="11" ><img src="images/close.png"></span>
<div id="comment_actions" class="comment_actions" style="display: none; margin: 5px"><textarea style="width: 100%"></textarea>
<br>
<input type="text" id="date" class="date" /> <input style="margin: 5px" type="button" class="button blue" value="Save" />
</div>
</li>
<li id="itemList_27">
1. Sta ima <span class="closeBox" id="27" ><img src="images/close.png"></span>
<div id="comment_actions" class="comment_actions" style="display: none; margin: 5px"><textarea style="width: 100%"></textarea>
<br>
<input type="text" id="date" class="date" /> <input style="margin: 5px" type="button" class="button blue" value="Save" />
</div>
</li>
<li id="itemList_26">
2. Update 22 <span class="closeBox" id="26" ><img src="images/close.png"></span>
<div id="comment_actions" class="comment_actions" style="display: none; margin: 5px"><textarea style="width: 100%"></textarea>
<br>
<input type="text" id="date" class="date" /> <input style="margin: 5px" type="button" class="button blue" value="Save" />
</div>
</li>
.....
如何点击<div>
comment_actions
closeBox
注意:每个<li>
都有自己的comment_actions
div
到目前为止,我尝试过类似的事情:
jQuery('.closeBox').live('click', function() {
jQuery(this).next('div').hide();
});
答案 0 :(得分:1)
首先,the fiddle。
我会在您的评论data
块中添加div
属性,这些块与所点击的span
的ID相匹配。然后,您可以使用数据选择器选择.toggle()
方法以显示隐藏尽可能多的其他div
块以及匹配的data
属性。
我还从display:none;
范围中删除了closebox
,以便实际点击它。
0. updated
<!-- Note the data-comments property added here -->
<span class="closeBox" id="11" data-comments="11" >
<img src="images/close.png">
</span>
<!-- Note the data-comments property added here -->
<div id="comment_actions" data-comments="11" class="comment_actions" style="display: none; margin: 5px">
<textarea style="width: 100%"></textarea>
<br>
<input type="text" id="date" class="date" />
<input style="margin: 5px" type="button" class="button blue" value="Save" />
</div>
$(document).ready(function(e) {
$('.closeBox').on('click', function(e) {
e.preventDefault();
var $target = $(e.target).parent();
$('div[data-comments="' + $target.data('comments') + '"]').toggle();
});
});
答案 1 :(得分:0)
你的代码很接近。
从display: none
移除span.closedBox
,然后尝试:
jQuery('.closeBox').live('click', function() {
jQuery(this).next('div.comment_actions').toggle();
});
另外,请避免在多个元素中使用属性id
值。 (没有重复的id
)
答案 2 :(得分:0)
$('.closeBox').bind('click', function() {
$('.comment_actions').toggle();
});
如果您想要更多功能,请查看: