Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery移动列表自定义筛选器搜索_Javascript_Jquery_Jquery Mobile - Fatal编程技术网

Javascript Jquery移动列表自定义筛选器搜索

Javascript Jquery移动列表自定义筛选器搜索,javascript,jquery,jquery-mobile,Javascript,Jquery,Jquery Mobile,我想更改Jquery移动列表中的默认过滤器,如下所示: <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><

我想更改Jquery移动列表中的默认过滤器,如下所示:

<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>
我从jquerymobileapi文档中找到了这个页面,它展示了如何做

这是代码。它将按行号搜索,而不是按文本搜索:

$( document ).on( "mobileinit", function() {
    $.mobile.filterable.prototype.options.filterCallback = function( index, searchValue ) {
        var idx;

        if ( searchValue ) {
            searchValue = searchValue.split( "," );
            searchValue = $.map( searchValue, function( element ) {
                var ar = element.split( "-" );
                    return ar.length === 1 ? parseInt( element ) :
                        [ [ parseInt( ar[ 0 ] ), parseInt( ar[ 1 ] ) ] ];
            });
            for ( idx = 0 ; idx < searchValue.length ; idx++ ) {
                if ( ( $.type( searchValue[ idx ] ) === "number" &&
                        index === searchValue[ idx ] ) ||
                    ( $.type( searchValue[ idx ] ) === "array" &&
                        index >= searchValue[ idx ][ 0 ] &&
                        index <= searchValue[ idx ][ 1 ] ) ) {
                    return false;
                }
            }
        }

        return !!searchValue;
    };
});
但是,不幸的是,我不能让它工作

这就是我所做的。上述文档中的相同代码:

我希望有人能帮我找到解决办法^^

还有一个问题

如果我在正文末尾使用javascripts,它将如何工作


感谢您的关注。

上面的代码应该放在jQuery.js之后、jQM.js之前的head中,因为它是在mobileinit上执行的,mobileinit甚至在.ready.Humm之前启动。有趣的谢谢但即使我将代码放在jquery js之后、jquery mobile js之前,在我的脑海中,我的页面也会出现消息$.mobile.filterable未定义的情况。你知道为什么吗?你不应该将它绑定到mobileinit,而是使用PageContainerCreate。因为您希望在创建可过滤小部件之前覆盖默认函数。难以置信的它工作得很好。最后一个问题,如果可能的话。我可以从索引中获取文本吗?因为我刚刚从一些列表中找到了需要一个id的结果。之后,请把答案贴给我接受。