为什么jQuery-Mobile不允许我调用可过滤小部件的方法?

时间:2014-09-15 16:20:34

标签: jquery-mobile

似乎每当我尝试调用可过滤小部件的方法时,例如刷新或销毁,我都会给出错误

  

错误:在初始化之前无法调用filterable上的方法;   试图调用方法'销毁'

According to the docs,我应该可以使用以下格式在我的小部件上执行方法:

$( ".selector" ).filterable( "method" );

如果您转到可过滤的演示:http://demos.jquerymobile.com/1.4.4/filterable/,并尝试执行以下行

$("#filterBasic-input").filterable("destroy")
页面加载后,在浏览器的控制台中

(可能是这个小部件初始化的时间?),你应该看到上面提到的错误信息。

通常,当尝试在错误的事件处理程序such as this question内调用方法时会发生这种类型的错误,但这种情况完全令我困惑。

1 个答案:

答案 0 :(得分:0)

$("#filterBasic-input")是错误的选择器。可过滤小部件实际上是列表(UL)而不是搜索输入框。在您的示例中,为列表指定一个id:

<ul id="theList" data-role="listview" data-filter="true" data-input="#filterBasic-input">
    <li>Acura</li>
    <li>Audi</li>
    <li>BMW</li>
    <li>Cadillac</li>
    <li>Ferrari</li>
</ul>

然后,可过滤小部件的选择器将是$("#theList"),例如:

$("#theList").filterable( "disable" );
  

这是 DEMO