0

属性を持つ順序付けられていないリストがありdata-filter="true"ます。フィルター ボックスが空のときにリスト項目を非表示にするにはどうすればよいですか? デフォルトのリスト ビューの動作をオーバーライドする必要がありますか? どうやって?

これは実際には、各折りたたみ可能なブロックで UL を使用して折りたたみ可能なセットをフィルタリングするための回避策です。最後にやりたいことは、非表示のコンテンツと折りたたみ可能なセットを含むデータ フィルターを表示することです。そのため、ユーザーがフィルターを使用することを選択した場合、折りたたみ可能なセットは非表示になり、フィルター処理された結果のみが表示されます。

前もって感謝します...

4

1 に答える 1

0

残念ながら、このために jquery mobile のデフォルトの動作をオーバーライドする方法はありません。jquery モバイル コードの上に処理を追加する必要があります。以下を試してください:

このためには、スタイルシートを次のように定義する必要があります。

  .ui-hidden-component {
    display: none !important;
  }

そして、次のスクリプト コードを追加します。

$(document).delegate('[data-role="page"]', 'pageinit', 
      function() { 
        var $listview = $(this).find('[data-role="listview"][data-filter="true"]'); 
        $(this).delegate('input[data-type="search"]', 'keyup change', 
          function () { 
            var $this = $(this); 
            if ($this.val() == '') {
              $listview.children().addClass("ui-hidden-component");
            } else {
              $listview.children().removeClass("ui-hidden-component");
            }
          });
        if ($('input[data-type="search"]').val() == '') {
          $listview.children().addClass("ui-hidden-component");
        }
    });
于 2012-08-14T14:23:36.977 に答える