Jquery mobile jQuery Mobile在使用data role=none时取消绑定、删除或忽略刷新调用

Jquery mobile jQuery Mobile在使用data role=none时取消绑定、删除或忽略刷新调用,jquery-mobile,Jquery Mobile,我试图忽略所有要刷新的调用(因为在jQuery Mobile中设置data role=“none”时,它们会生成错误),而不删除实际调用 <div data-role="none"> <label for="select-choice-1" class="select">Choose shipping method:</label> <select name="select-choice-1" id="select-choice-1" d

我试图忽略所有要刷新的调用(因为在jQuery Mobile中设置data role=“none”时,它们会生成错误),而不删除实际调用

<div data-role="none">
    <label for="select-choice-1" class="select">Choose shipping method:</label>
    <select name="select-choice-1" id="select-choice-1" data-role="none">
        <option value="standard">Standard: 7 day</option>
        <option value="rush">Rush: 3 days</option>
        <option value="express">Express: next day</option>
        <option value="overnight">Overnight</option>
    </select>
</div>
我收到的错误是:

Uncaught Error: cannot call methods on selectmenu prior to initialization; attempted to call method 'refresh' 
如果删除数据role=“none”,则不存在此错误

是否有方法忽略/覆盖刷新调用?我尝试使用jQuery.unbind和.off,但没有成功,例如:

$(document).on("pageinit", "#mypage", function( event ) {
    $('#select-choice-1').unbind('refresh');
});
我不想删除Javascript中的刷新调用,除非我必须这样做,因为我希望以后可以很容易地重新应用jQuery Mobile样式。有人能解决这个问题吗?

试试:

if($('#select-choice-1').selectmenu()){
      $('#select-choice-1').selectmenu('refresh');
}


如果对象不存在,则无法调用该对象的方法。

如果要禁用
.selectmenu()
小部件,则需要在
mobileinit
上全局修改该方法。此外,不需要添加
数据role=“none”

这样,
select
标记就不会被jQM增强/设置样式,而是保持不变(原生外观)

如果这样做,则不应使用
。选择菜单(“刷新”)
,因为小部件已禁用

要告诉jQM不要设置
标签的样式,请将全局修改绑定到
mobileinit
,将它们添加到jQuery之后和jQuery Mobile JS库之前

  • jQuery Mobile 1.3.2及以下版本

    <script src="jquery-1.9.1.min.js"></script>
    <script>
      $(document).on("mobileinit", function() {
        $.mobile.page.prototype.options.keepNative = "select";
      });
    </script>
    <script src="jquery.mobile-1.3.2.min.js"></script>
    
    
    $(文档).on(“mobileinit”,函数(){
    $.mobile.page.prototype.options.keepNative=“选择”;
    });
    

  • jquerymobile1.4

    <script src="jquery-1.10.2.min.js"></script>
    <script>
      $(document).on("mobileinit", function() {
        $.mobile.keepNative = "select";
      });
    </script>
    <script src="jquery.mobile-1.4.0-rc.1.min.js"></script>
    
    
    $(文档).on(“mobileinit”,函数(){
    $.mobile.keepnactive=“选择”;
    });
    


  • 你想要实现什么?没有jqm样式的本机selectmenu?是否jqm样式,但我仍希望能够调用“刷新”。这是因为应用程序中的默认行为是使用jqm样式,但我希望在某些情况下禁用该样式并应用其他样式。如果要忽略jqm样式,则不需要使用刷新方法。因为您禁用了
    .selectmenu()
    小部件,因此会出现错误。
    <script src="jquery-1.9.1.min.js"></script>
    <script>
      $(document).on("mobileinit", function() {
        $.mobile.page.prototype.options.keepNative = "select";
      });
    </script>
    <script src="jquery.mobile-1.3.2.min.js"></script>
    
    <script src="jquery-1.10.2.min.js"></script>
    <script>
      $(document).on("mobileinit", function() {
        $.mobile.keepNative = "select";
      });
    </script>
    <script src="jquery.mobile-1.4.0-rc.1.min.js"></script>