使用Jquery Mobile 1.2存在一个问题,如果您有一个列表视图,并且隐藏然后显示该子项,则无法搜索所述子项。
无需用语言解释,请看: http://jsfiddle.net/bodgybrothers/bw2ZV/
在加载时,它会创建两个listview子项和搜索框。然后它隐藏并显示第二个孩子。通过搜索此列表,即使没有搜索匹配,也会始终显示第二个子项。
我认为这是jquery mobile中的一个错误,但是想知道是否有一种解决方法可以在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();
编辑:我制定了一个可以追溯到javascript而不是使用jquery库的方法。隐藏和显示功能如下所示:
function showStuff(id) {
document.getElementById(id).style.display = '';
}
function hideStuff(id) {
document.getElementById(id).style.display = 'none';
}
更新了JSfiddle http://jsfiddle.net/bodgybrothers/uwnCY/
答案 0 :(得分:0)
你已经有了一个解决方法,但另一个更容易修复(对于那些有同样问题的人) - 是做一个addClass(“hide”)或removeClass(“hide”)而不是.show / .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/