1

MySQL テーブルから PHP を介して抽出された複数のアイテムを表示するサイトがあります。

次に、色によるフィルターがあります(チェックボックスはさまざまな色を表示し、それらをクリックすると、次のjqueryが選択した色を非表示/表示します):

jQuery(document).ready(function($) {

    $(":checkbox").bind("click", function (event) {
        if($(this).is(':checked')) {
            $(".itemBox:not(#" + $(this).val()  + ")").hide();
            $(".itemBox[id='" + $(this).val() + "']").show();
        }
        else {
        $(".itemBox").show();
        }
});
});

私の問題は次のとおりです。アイテムは次のように 2 つずつ表示されるため、jquery が表示/非表示を切り替えると、アイテムはその場所にそのまま残り、再編成されません。そのため、アイテムが以前に表示され、現在は非表示になっている空白のスペースが表示されます...

これを修正するか、PHP を強制的に更新するための提案はありますか? ページ全体を更新しないようにしています...

while ($info = mysql_fetch_array($items))
{
if ($row_count % 2 == 0) 
{
echo "<tr>";
}
echo "<td><div name='item' id='".$info[color_base1]."' class='itemBox'><div class='showItem'><a href='items_descr.php?itemId=".$info[id_item]."'><img class='itemImage' alt='' src='images/$info[imageMid].jpg'></img></div><br />";
echo "<div class='indexItemText'><font class='similarItemsText'><a href='items_descr.php?itemId=".$info[id_item]."'>".$info[name]."</a><font class='price'> - $".$info[price]."</div></td></div>";
$row_count++;
4

1 に答える 1

0

これらすべての要素をコンテナdivに入れ、各アイテムのCSSにfloatを残した単一のアイテムdivに入れると、同じ外観になるCSSを記述できますが、hideメソッドを使用して要素を取り出すと、ギャップが削除されます。

于 2012-08-02T21:27:46.740 に答える