ビューにajax露出フィルターがあります。ユーザーがフィルターからオプションを選択すると、コンテンツが読み込まれます。しかし、ビュー上のアイテムをクリックしてブラウザーの戻るボタンを押すと、公開されたフィルターがリセットされ、デフォルトのオプションが選択されます。ページを更新すると、同じことが起こります。
最後に選択したオプションを保持する方法はありますか?ビューのページ番号をクリックしても同じことが起こります。
ありがとうございました。
この問題が解決するまで、これを機能させるにはajaxをオフにする必要があります。 http://drupal.org/node/1248332 を参照してください
次に、公開されたフィルターを編集し、「最後の選択を記憶」をチェックします。
ありがとうuser2890。これに遭遇した人のために、これがuser2890のコードの私の改良版です:
_$('.views-exposed-widget select').each(function() {
if (
$(this).find(':selected').val() !==
$(this).find('option[selected="selected"]').val()
)
$(this).trigger('change');
});
_
したがって、このコードは、UIで選択されたオプションがHTMLの_selected="selected"
_属性を持つオプションと異なる場合にのみ「変更」イベントをトリガーします。 user2890が述べたように、このコードを$(document).ready()
に入れることができます。
より良い解決策は、Javascriptを使用することです。 AJAXを使用している場合は、すでにそれに依存しています。 jQueryを使用した1つのライナーがあります。
if($('.views-exposed-widget select').length) {
$('.views-exposed-widget select').trigger('change');
}
それは通常のdocument.readyブレースに入る。 select要素でchangeイベントを発生させ、AJAXイベントをトリガーします。