残念ながら、このために 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");
}
});