0
var myClass;

jQuery(".option-set a").click(function() {
myClass = jQuery(this).attr("class");

jQuery("a.perma").each(function() {
    var _href = jQuery(this).attr("href"); 
    jQuery(this).attr("href", _href + "#filter=." + myClass);
});
});

このコードを使用して、各サムネイルのパーマリンクの最後にフィルターのクラス名を追加します

私が今直面している問題は、クラスがクリックするたびにパーマリンクの最後に割り当てられ続けることです。そのため、印刷をクリックしてからWebをクリックすると、パーマリンクのURLは次のように表示されます。/#filter=.print#filter= .web#filter = .photographyは引き続き機能しますが、整理のために最後の1つだけを表示すると便利です。

また、サムネイルがクリックされて次のページが読み込まれると、選択したフィルターの現在のパーマリンクを維持するためにサムネイルが必要になります。任意のアイデアをいただければ幸いです。私はこれを理解できないようです。本当にありがとうございました!!

4

2 に答える 2

1

クリックするたびにではなく、一度だけ呼び出す...

jQuery(document).ready(function() {
    myClass = jQuery('.option-set a').attr("class");

    jQuery("a.perma").each(function() {
        var _href = jQuery(this).attr("href"); 
        jQuery(this).attr("href", _href + "#filter=." + myClass);
    });

    jQuery(".option-set a").click(function() {...});
});
于 2013-01-07T16:06:42.683 に答える
0

この変更により、現在のクラスフィルターが存在しないかどうかを確認する必要があります。

jQuery("a.perma").each(function() {
  var _href = jQuery(this).attr("href"),
      newHref = _href.indexOf(myClass) === -1 ? _href + "#filter=." + myClass : _href;
    jQuery(this).attr("href", newHref);
  });
});

また、次のページの読み込み時にフィルタリングされたサムネイルURLを維持するには、サーバーを操作して渡すパラメーターを解析するか、Webストレージを使用して現在のフィルタリングされたパスを保存し、ドキュメントの読み込み時にサムネイルhrefを設定する必要があります。

于 2013-01-07T16:06:16.240 に答える