Jquery mobile 如果没有结果,jquery mobile listview

Jquery mobile 如果没有结果,jquery mobile listview,jquery-mobile,jquery-mobile-listview,Jquery Mobile,Jquery Mobile Listview,我正在尝试搜索listview项 问题是,当结果没有找到任何项目时,我想显示一条类似“未找到结果”的消息 所以我在这里搜索了一个示例,但它不适用于我的JQM版本1.4.2 我该怎么做? plz帮助~ 这是我的密码 <ul data-role="listview" data-filter="true" data-filter-placeholder="Search fruits..." data-inset="true"> <li><a hr

我正在尝试搜索listview项

问题是,当结果没有找到任何项目时,我想显示一条类似“未找到结果”的消息

所以我在这里搜索了一个示例,但它不适用于我的JQM版本1.4.2

我该怎么做? plz帮助~

这是我的密码

 <ul data-role="listview" data-filter="true" data-filter-placeholder="Search fruits..." data-inset="true">
            <li><a href="#">Apple</a></li>
            <li><a href="#">Banana</a></li>
            <li><a href="#">Cherry</a></li>
            <li><a href="#">Cranberry</a></li>
            <li><a href="#">Grape</a></li>
            <li><a href="#">Orange</a></li> 
        </ul>
JQM版本1.4.2将“ui屏幕隐藏”类添加到列表中的每个li项中。这就是为什么即使执行淡出功能,它仍保持隐藏状态。逻辑是正确的,但是它被这个类覆盖了。一个快速且经过测试的解决方案是使用!重要的

$(document).delegate('[data-role="page"]', 'pageinit', function () {
var $listview = $(this).find('[data-role="listview"]');
  $(this).delegate('input[data-type="search"]', 'keyup', function () {
    if ($listview.children(':visible').not('#no-results').length === 0) {
        $('#no-results').attr("style","display:block !important");
    } else {
        $('#no-results').attr("style","display:none !important");
    }
  });
});
注意,我使用了.attr函数,并显式地添加了“style”属性,而不是使用jquery css函数,因为.css jquery函数不喜欢!出于某些原因,这很重要

您可能遇到的另一个问题是有结果时会显示“无结果”消息。这将是由于过滤过程中实施的延迟。当有数千个项目要搜索时,此延迟可保护性能

您必须用延迟进程包装if语句。例如setTimeout或中的延迟插件

祝你好运

  $(this).delegate('input[data-type="search"]', 'keyup', function () {
    setTimeout(function(){
    if ($listview.children(':visible').not('#no-results').length === 0) {
        $('#no-results').attr("style","display:block !important");
    } else {
        $('#no-results').attr("style","display:none !important");
    }
    }, 1000);
});