0
我需要使用jquery同位素過濾在「頁面加載」過濾網頁中的一些項目集。因爲我在我的網頁中調用下面的代碼段。同位素過濾器自動顯示所有項目
$(document).ready(function() {
//function to generate all the items in the page
generateAllHomes();
$('#container').isotope(
{
filter: '.singleStory'
}
);
});
這僅適用於幾秒鐘。一旦頁面被加載。但大約2秒鐘後,它會自動顯示所有項目。有人能告訴我這裏發生了什麼嗎?
我在顯示我的代碼
<section class="rooms mt50">
<div class="container">
<div class="row">
<div class="row" id="homeDisplay">
</div>
</div>
</div>
</section>
下方位置的同位素項目和我使用下面的函數在$(文件)。就緒動態生成的同位素項目..
function displayHomes(objectList) {
var node = document.getElementById('homeDisplay');
while (node.hasChildNodes()) {
node.removeChild(node.firstChild);
}
//document.getElementById("MyElement").className = "row room-list isotope";
var finalList = '';
for (var x = 0; x < objectList.length; x++) {
var home = objectList[x];
var elevationPhotoPath = 'https://s3-ap-southeast-2.amazonaws.com/elevationphotos/' + home.elevationphotoName;
var homeAddress = home.address;
var priceValue = home.price;
var homePrice = numberWithCommas(priceValue);
//var homePrice = priceValue;
if (homePrice <= 0) {
homePrice = '-';
}
var homeName = home.homeName;
var bedRooms = home.numberOfBedrooms;
var bathRooms = home.numberOfBathrooms;
var garages = home.numberOfGarages;
var area = home.livingArea;
var floorPlanPhoto = home.floorplanName;
var builderName = home.builderName;
var homeState = home.state;
var thaterAvailable = home.theaterAvailable;
var alfrescoAvailable = home.alfrescoAvailable;
var gamesAvailable = home.gamesAvailable;
var studyAvailable = home.studyAvailable;
var livingArea = home.livingArea;
var frontage = home.frontage;
var contactEmail = home.contactEmail;
var contactName = home.contactName;
var contactPhone = home.contactPhone;
var longitude = home.longitude;
var latitude = home.latitude;
var homeDesign = home.design;
var queryString = '?' + 'homeAddress=' + homeAddress + '&homePrice=' + homePrice + '&homeName=' + homeName + '&bedRooms=' + bedRooms + '&bathRooms=' + bathRooms + '&garages=' + garages + '&area=' + area +
'&floorPlan=' + floorPlanPhoto + '&builder=' + builderName + '&stateName=' + homeState + '&thaterAvail=' + thaterAvailable + '&alfrescoAvail=' + alfrescoAvailable + '&gamesAvail=' + gamesAvailable +
'&studyAvail=' + studyAvailable + '&frontage=' + frontage + '&livingArea=' + livingArea + '&contactEmail=' + contactEmail + '&contactName=' + contactName + '&contactPhone=' + contactPhone +
'&longi=' + longitude + '&lati=' + latitude;
var bedRoomFilterValue = bedRooms + 'b';
if (bedRooms >= 7)
bedRoomFilterValue = '7b';
var filterString = getPriceBandIndex(priceValue) + ' ' + homeState + ' ' + bedRoomFilterValue + ' ' + frontage + 'f' + ' ' + homeDesign.split(' ').join('_') + ' ' + builderName.split(' ').join('_');
var homeFrame = '<div class="col-sm-4 ' + filterString + '">'
//homeFrame += '<div class="col-sm-4 single">';
//homeFrame+='<div class="col-sm-4 single">';
homeFrame += '<div class="room-thumb"> <img src="' + elevationPhotoPath + '" alt="room 1" class="img-responsive" />';
homeFrame += '<div class="mask">';
homeFrame += '<div class="main">';
homeFrame += '<h5>' + homeName + '<div class="builder-name">' + builderName + '</div></h5>';
if (homePrice == '-') {
homeFrame += '<div class="price">' + homePrice + '<span> BASE</span></div>';
} else {
homeFrame += '<div class="price">$' + homePrice + '<span> BASE</span></div>';
}
homeFrame += '<div class="features">'+bedRooms +' bed <br/>'+ bathRooms +' bath</div>';
homeFrame += '</div>';
homeFrame += '<div class="content">';
homeFrame += '<p><span>'+homeAddress+'</span></p>';
homeFrame += '<div class="row" style="height:112px;">';
homeFrame += '<div class="col-xs-6">';
homeFrame += '<ul class="list-unstyled">';
if (area == 0) {
homeFrame += '<li><div class="icon-area"> <span class="icon_span">'+'-'+' m<sup>2</sup></span></div></li>';
}else{
homeFrame += '<li><div class="icon-area"> <span class="icon_span">'+area+' m<sup>2</sup></span></div></li>';
}
homeFrame += '<li><div class="icon-bed"> <span class="icon_span">'+bedRooms+' Bedrooms</span></div></li>';
if (thaterAvailable == 'True') {
homeFrame += '<li><i class="fa fa-check-circle"></i> Theater</li>';
}
if (alfrescoAvailable == 'True') {
homeFrame += '<li><i class="fa fa-check-circle"></i> Alfresco</li>';
}
homeFrame +='</ul>';
homeFrame +='</div>';
homeFrame +='<div class="col-xs-6">';
homeFrame +='<ul class="list-unstyled">';
homeFrame +='<li><div class="icon-bath"> <span class="icon_span">'+bathRooms+' Bathrooms</span></div></li>';
homeFrame +='<li><div class="icon-garage"> <span class="icon_span">'+garages+' Garages</span></div></li>';
if (gamesAvailable == 'True') {
homeFrame += '<li><i class="fa fa-check-circle"></i> Games</li>';
}
if (studyAvailable == 'True') {
homeFrame += '<li><i class="fa fa-check-circle"></i> Study</li>';
}
homeFrame +='</ul>';
homeFrame +='</div>';
homeFrame +='</div>';
homeFrame += '<a href="displayhome-detail.php' + queryString + '" class="btn btn-primary btn-block">More Details</a> </div>';
homeFrame +='</div>';
homeFrame +='</div>';
homeFrame +='</div>';
homeFrame +='</div>';
finalList += homeFrame;
}
document.getElementById('homeDisplay').innerHTML += finalList;
}
下面是我使用
$同位素過濾功能(功能(){
var $container = $('#homeDisplay'),
filters = {};
$container.isotope({
itemSelector: '.col-sm-4'
});
// filter buttons
$('select').change(function() {
var $this = $(this);
//alert('JS called');
// store filter value in object
// i.e. filters.color = 'red'
var group = $this.attr('data-filter-group');
filters[ group ] = $this.find(':selected').attr('data-filter-value');
console.log($this.find(':selected'));
// convert object into array
var isoFilters = [];
for (var prop in filters) {
//alert(filters[ prop ]);
isoFilters.push(filters[ prop ])
}
console.log(filters);
var selector = isoFilters.join('');
$container.isotope({ filter: selector });
return false;
});
});
您需要發佈更多的代碼。你的頁面和同位素的結構可能是什麼? – Macsupport 2014-10-10 04:48:36
我剛剛在這裏添加了我使用的代碼。請注意,同位素項目正在通過電子方式生成 – 2014-10-13 06:22:00