Javascript Jquery移动列表自定义筛选器搜索
我想更改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><
<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的结果。之后,请把答案贴给我接受。