我创建了一个列表页面,其中每个列表都有自己的div,该div的内容是通过$ .post从单独的php脚本加载的
我遇到的问题是试图隐藏列表,我认为问题可能与此行有关
$( 'div.close_listing')
如果我使用
,我才能让它工作$('div.listing> div').click(
function() {
$('div.listing> div').hide();
});
(当我点击列表div中的任何地方时可以正常工作)
任何帮助都非常感激。
列表的html代码是:
<div id='listing'>
<div id='loading'></div>
<a name='13'><h3>Business1</h3></a> <h4 data-id=18-3-3>Name Of Business 1</h4>
<div>
<hr>
*** content forbusiness1 appears here ***
<div class='close_listing'>CLOSE this listing</div>
</div>
<a name='14'><h3>Business2</h3></a> <h4 data-id=19-3-3>Name Of Business 2</h4>
<div>
<hr>
*** content for business2 appears here ***
<div class='close_listing'>CLOSE this listing</div>
</div>
</div>
调用内容的代码如下:
$(document).ready(function() {
$('div.listing> div').hide();
$('div.listing> h4').click(function() {
$('div.listing> div').empty().html('<img src="loading_image.gif" /><br>Retrieving Details.....');
$.post("http://www.example.com/record.php", { id: $(this).attr('data-id') });
$.post('show.php',{ id: $(this).attr('data-id')}, function(data) {
$('div.listing> div').html(data);
$('div.listing .close').visible();
});
var $nextDiv = $(this).next();
var $visibleSiblings = $nextDiv.siblings('div:visible');
if ($visibleSiblings.length ) {
$visibleSiblings.slideUp('fast', function() {
$nextDiv.slideToggle('fast');
});
} else {
$nextDiv.slideToggle('fast');
}
});
// closes the listing down
$('div.close_listing').click(
function() {
$('div.listing> div').hide();
});
});
答案 0 :(得分:1)
我猜你打算这样做
$('div.close_listing').click(function() {
$(this).closest('.listing').hide();
});
});
答案 1 :(得分:0)
问题在于这一行:
$('div.listing> div').hide();
应该是
$('div#listing > div').hide();
但是我认为那时你很隐蔽(#listing正下方的所有div)。请考虑以下事项:
$(this).parent().hide();
答案 2 :(得分:0)
我发现你的问题有点难以理解,但如果你想要的是关闭close_listing的父div,那么我已经编辑了你的html标记,如此
<div id='listing'>
<div id='loading'></div>
<a name='13'><h3>Business1</h3></a> <h4 data-id=18-3-3>Name Of Business 1</h4>
<div>
<hr>
content forbusiness1 appears here
<a class='close_listing' href="#">
CLOSE this listing
</a>
</div>
<a name='14'><h3>Business2</h3></a> <h4 data-id=19-3-3>Name Of Business 2</h4>
<div>
<hr>
content for business2 appears here
<a class='close_listing' href="#">
CLOSE this listing
</a>
</div>
</div>
javascript应该是这样的
$('a.close_listing')。bind('click',function(){
$(this).parent().show().fadeOut(500);
return false;
});