我想要一个可以动态更新的过滤器:
我在外部脚本文件中使用了同位素 javascript:
var $container = $('.isotope');
// initialize isotope
$container.isotope({
// options...
});
// filter items when filter link is clicked
$('.filter a').click(function(){
var selector = $(this).attr('data-filter');
$container.isotope({ filter: selector });
$('.filter a.active').removeClass('active');
$(this).addClass('active');
return false;
});
我的过滤器链接:
<ul class="filter clearfix" id="filterContainer">
<li><a href="#" class="active" data-filter="*">All</a></li>
</ul>
第一个链接“全部”有效,但是当我尝试使用 ajax 向其中添加更多链接时出现问题:
function getFilterHtml() {
$.ajax({
type: "POST",
url: "Default.aspx/getFilterHtml",
data: "{}",
contentType: "application/json",
dataType: "json",
success: function (msg) {
// Replace the div's content with the page method's return.
//$("#filterContainer").html(msg.d);
var $newItems = $(msg.d);
$('#filterContainer').append($newItems).isotope('addItems', $newItems).isotope('reLayout', callback).isotope('reloadItems');
}
});
}
回调之后是这个样子。除了点击电话部门时,它会将我带到页面顶部“
<ul id="filterContainer" class="filter clearfix">
<li>
<a class="active" data-filter="*" href="#">All</a>
</li>
<li>
<a data-filter=".PhoneDepartment" href="#">Phone Department</a>
</li>
</ul>