一部の検索フィルターを非表示にするJavaScriptファイルにこのコードがあります...
$('#views-exposed-form-faceted-search-page .form-type-select').once().hide();
ユーザーは#advanced-searchリンクをクリックしてフィルターの表示を切り替えることができます...
$('#views-exposed-form-faceted-search-page #advanced-search a').once('advanced_search').click(function(){
$('#views-exposed-form-faceted-search-page .form-type-select').toggle();
});
機能しますが、AJAX=フォームが送信されると、hide()関数が再度実行され、.form-type-select要素が非表示になります。2回目に非表示にならないようにするにはどうすればよいですか? ?ページが最初に読み込まれたときにコードで選択を非表示にしたいだけです。
Ajaxが非表示にしているこの部分をリロードすると、once()
が設定したマーカーが、表示/非表示ステータスも上書きされます。次に、Ajaxから返されるように表示/非表示のステータスを送信するか、Ajaxで完全に制御できるように表示/非表示のAjaxフォーム要素を作成する、別の方法が必要です。
これがAjaxラッパーの外にある場合は、JavaScriptでこれを実行できますが、context
にjQueryセレクターを適用します。
$('#views-exposed-form-faceted-search-page .form-type-select', context).once('search-hide').hide();
https://www.drupal.org/docs/8/api/javascript-api/javascript-api-overview を参照してください