0

PHP経由で表示される一部のアイテムをフィルタリングするために、一連のチェックボックスで実行されるjavascriptがあります。

誰かが情報をフィルタリングしてアイテムをクリックすると、そのアイテムの説明が表示されます。私の問題は、フィルタリングが既になくなっているため、そのユーザーがブラウザーの [戻る] ボタンをクリックしたときです。

これは、私のスクリプトが .php をロードするが、DIV 内でしかロードしないために発生します (したがって、ページ全体をリロードする必要はありません)。これは、送信した変数が URL レベルではなく DIV レベルで読み込まれることを意味します。そのため、特定の製品の説明に移動してから戻ると、それらの変数はもう存在せず、フィルタリングはなくなります。

これが私のJSです:

$(function() {
    $("input[type='checkbox']").on('change', function() {
        var boxes = [];
        // You could save a little time and space by doing this:
        var name = this.name;
        // critical change on next line
        $("input[type='checkbox'][name='"+this.name+"']:checked").each(function() {
            boxes.push(this.value);
        });
        if (boxes.length) {
            $(".loadingItems").fadeIn(300);
            // Change the name here as well
            $(".indexMain").load('indexMain.php?categ=<?php echo $category; ?>&'+this.name+'=' + boxes.join("+"),
            function() {
                $(".indexMain").fadeIn('slow');
                $(".loadingItems").fadeOut(300);
            });

        } else {
            $(".loadingItems").fadeIn(300);
            $(".indexMain").load('indexMain.php?categ=<?php echo $category; ?>', function() {
                $(".indexMain").fadeIn('slow');
                $(".loadingItems").fadeOut(300);
            });
        }
    });
});

これを解決するアイデアはありますか?

4

1 に答える 1

0

アイテムの説明を新しいウィンドウで開くか、(よりエレガントに) モーダル ダイアログでアイテムの説明を開きます (例: jQuery UI dialogを使用)。

于 2013-02-14T23:32:42.457 に答える