0

記事リストの空のスペースをいくつかのプレースホルダーPNGで埋めたい。ウィンドウサイズが320の場合、アイテムの数が奇数になります->1つのプレースホルダーを入力します。

ウィンドウサイズが320より大きく、記事が1つだけリストされている場合、または記事が均等にリストされている場合は、1つまたは2つのプレースホルダーを追加する必要があります。

正常に動作しますが、ウィンドウサイズが変更されるたびに、スクリプトは常にプレースホルダーを起動します。

ここにあります:

$(document).ready(function() {

//the first loaded articlelist
var str = $('.item').length;
var width = $(window).width();

if ((str % 2) != 0 && width == 320) {
$('div.item').last().after('<div class="filler"></div>');
}
if ((str % 3) === 1 && width > 320) {
$('div.item').last().after('<div class="filler"></div><div class="filler"></div>');
}
if ((str  % 3) === 2 && width > 320) {
$('div.item').last().after('<div class="filler"></div>');
}

$(window).resize(function(){
    if($(this).width() != width){
        width = $(this).width()
        if ((str % 2) != 0 && $(window).width() == 320) {
        $('div.item').last().after('<div class="filler"></div>');
    }
    if ((str % 3) === 1 && $(window).width() > 320) {
        $('div.item').last().after('<div class="filler"></div><div class="filler"></div>');
    }
    if ((str  % 3) === 2 && $(window).width() > 320) {
        $('div.item').last().after('<div class="filler"></div>');
    }
    }
});
...
4

1 に答える 1

3

Jquery .one()は問題を解決するはずです。バインドされた関数を一度だけ実行できます

$(window).one("resize", function(){...}
于 2012-11-13T14:15:55.493 に答える