我的 Isotope 运行平稳,但它似乎以不可预测的方式重置可变大小的类值 - 至少据我了解它是如何工作的。
我的基本结构:页面顶部的一排按钮,AZ 类=字母。每个按钮加载一组新的 div。
$(".letter").click(function() {
if ($('.'+letX+'').length > 0 ) { // divs already loaded
var newItems = $('.'+letX+''); // letX grabbed from div ID, a, b, etc.
$(this).find('#container').after(newItems); // loads fine, should hold width2 height2 set on very first load
}
else {
var stringData = $.ajax({ url: 'digz/index/'+$(this).attr("id")+'.txt', async: false }).responseText;
var $newItems = $(stringData);
$('#container').isotope( 'insert', $newItems );
$('.element').each(function(index) {
$(this).find('.titlePE').before('<p class="number">' + index + '</p>'); // add numbers for variable-sizes
});
variableSizes(); // new divs so set random width2 height2
}
});
我为 variableSizes 设置了一个函数来帮助我更清楚一点。在上述之前声明..
function variableSizes() {
$container.find('.element').each(function(){ // add randomish size classes
var $this = $(this), number = parseInt( $this.find('.number').text(), 10 );
//$this.removeClass('width2').removeClass('height2');
//$('.element').removeClass('width2').removeClass('height2');
// if ( !($this).hasClass('sized') ) {
if ( number % 7 % 2 === 1 ) { $this.addClass('width2'); } // $('div .nameP').html('wide');
if ( number % 3 === 0 ) { $this.addClass('height2'); }
// $this.addClass('sized'); // }
});
}
这是标准同位素程序。
我的 rems 是尝试修复。哦,我看到我遗漏了 if($(this).hasClass('sized')) 测试的代码
但是发生的事情是我单击了可变大小按钮(它将一个预类添加到已经设置的(随机) width2 height2。然后我点击 g = nice layout。然后 h = nice,然后 d,nice,然后 g 再次 = 废话。它主要设置在 width2 height2 或一些只是 height2。
我在这里遗漏了一部分过程。如何获得重复单击 g - 或 d 或...以保持随机设置的宽度 2 高度 2?它甚至不必是可预测的,让我们面对现实吧,这只是金光闪闪,但它应该保持某种“不错”。
有什么建议吗?