2

Jquery Mobile 1.2を使用すると、リストビューがあり、子を非表示にしてから表示すると、その子を検索できないという問題があります。

言葉で説明することなく、これを参照してください:http: //jsfiddle.net/bodgybrothers/bw2ZV/

ロード時に、2つのリストビューの子と検索ボックスが作成されます。次に、2番目の子を非表示にして表示します。このリストを検索すると、検索一致がない場合でも2番目の子が常に表示されます。

これはjquerymobileのバグだと思いますが、showメソッドの後ですべての要素を検索可能にする回避策があるかどうか疑問に思いました。

$('#li-nav').append('<li id="1"><a href="#page1">Page 1</a></li>')
$('#li-nav').append('<li id="2"><a href="#page2">Page 2</a></li>').listview('refresh');
$('#2').hide();
$('#2').show();

編集:jqueryライブラリを使用するのではなく、javascriptに戻るメソッドを作成しました。非表示および表示機能を以下に示します。

function showStuff(id) {
    document.getElementById(id).style.display = '';
}
function hideStuff(id) {
    document.getElementById(id).style.display = 'none';
}

JSfiddleを更新http://jsfiddle.net/bodgybrothers/uwnCY/

4

1 に答える 1

0

すでに回避策がありますが、別の簡単な修正(これと同じ問題が発生した場合)は、.show / .hideの代わりにaddClass( "hide")またはremoveClass( "hide")を実行することです。これにより、検索が中断されることはなくなりました。

css:
.hide {display:none;}   

JQuery: 
$('#li-nav').append('<li id="1"><a href="#page1">Page 1</a></li>');
$('#li-nav').append('<li id="2"><a href="#page2">Page 2</a></li>');
$('#li-nav').listview('refresh');
$('#2').addClass('hide');
$('#2').removeClass('hide');
('<li>').listview('refresh');

jsfiddleを参照してください:http://jsfiddle.net/Q8Cfj/1/

于 2013-09-03T19:09:58.090 に答える