我有以下代码,它根据其相应的数字过滤/显示某些div。例如,单击“onestar”链接将只在类名中显示带有“onestar”的div。这在第一次加载页面时工作正常。但是,假设我通过在JQuery中发布了一些新的标记,链接过滤器停止工作。出于某种原因,当由JQuery Ajax检索新标记时,过滤器停止工作。感谢在jquery中加载每个div
这是做js的过滤
$('#filtero-stars li a').click(function(){
$('#filtero-stars li').removeClass('active');
$(this).parent().addClass('active');
var colorClass = '.' + $(this).attr('class');
if(colorClass=='.all') {
$('#nothing_found').remove();
$wall.children('.invis').toggleClass('invis').fadeIn(500);
} else {
if ($wall.children(colorClass).length == 0) {
$('#demo .wrap').append(getNothingFound()).fadeIn(500);
setTimeout(function(){$('#nothing_found').show();},600);
} else $('#nothing_found').remove();
$wall.children().not(colorClass).not('.invis').toggleClass('invis').fadeOut(500);
$wall.children(colorClass+'.invis').toggleClass('invis').fadeIn(500);
}
});
此代码被用于过滤器的HTML标记
<ul class="star-rating" id="filter0-stars">
<li><a href="#onestar" class="onestar">
<div class="one"></div>
<span>1 Star</span></a></li>
<li><a href="#twostar" class="twostar">
<div class="two"></div>
<span>2 Stars</span></a></li>
<li><a href="#threestar" class="threestar">
<div class="three"></div>
<span>3 Stars</span></a></li>
<li><a href="#fourstar" class="fourstar">
<div class="four"></div>
<span>4 Stars</span></a></li>
<li><a href="#fivestar" class="fivestar">
<div class="five"></div>
<span>5 Stars</span></a></li>
<li><a class="all" href="#">Show all</a></li>
</ul>
这是将其过滤所述内容
<div id="demo">
<div class="box threestar">
<div class="box twostar">
<div class="box onestar">
</div>
这是检索新标记的代码,之后过滤器不起作用 $.post('get-offers.php', $("#offerForm").serialize(), function(data) {
$('#demo').html(data);
请在代码段中的每个新行之前用4个空格正确格式化您的代码。 – thenetimp 2012-02-04 18:56:12
可能重复? - http://stackoverflow.com/questions/6892755/load-div-then-delay-load-next-in-jquery – apnerve 2012-02-04 19:01:51