jquery mobile listview隐藏和显示然后无法搜索

标签 jquery listview search mobile hide

使用 Jquery Mobile 1.2 时存在一个问题,如果您有一个 ListView ,并且隐藏然后显示 subview ,则无法搜索到该 subview 。

无需用文字解释,请看这个: http://jsfiddle.net/bodgybrothers/bw2ZV/

加载时它会创建两个 ListView 子项和搜索框。然后它隐藏并显示第二个 child 。通过搜索此列表,即使没有搜索匹配,也始终会显示第二个子项。

我相信这是 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/

最佳答案

您已经有了解决方法,但另一个更简单的解决方法(对于那些遇到同样问题的人) - 是执行 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/

关于jquery mobile listview隐藏和显示然后无法搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14396500/

相关文章:

javascript - Froala 编辑器无法使用

javascript - 同一页面上的多个拖放区会导致出现错误

Android:ListView 有奇怪的边距

java - 我无法刷新 ListView

android - 数据库查询到ListActivity

Objective-C,来自偏移量的 rangeOfString

java - 扫描、字符串和 TextArea 的问题

java - 打印出链表的一部分

javascript - $.ajax() 打印一组未打印的 jsonObjects

jquery - 当超出本地存储限制时,amplify.store 是否返回错误或捕获异常?