2014-06-20 26 views
1

我的问题的简化版本是githubmobiscroll的setValue在随后打开的jQM对话框中不起作用

我正在使用mobiscroll 2.6.2(因为这是github上的最后一个免费版本,后来的版本高达2.11存在,但在不同的许可证上)。

基本上,我有一个索引页,除了包含jQM对话框页面的链接外,什么都不做。 dialog.html是具有单个输入的jQM对话框页面,其中mobiscroll库变成用于选择数字的弹出式滚动条。

mobiscroll工作。当我选择输入时弹出滚动条出现。我可以从滚动条中选择一个数字,并使用我的选择填充输入。所以我很确定我的mobiscroll初始化没问题。在这里我要重复一遍,便于回顾:

 $('#mobiInput').mobiscroll() 
      .scroller({ 
       theme: 'ios', 
       mode: 'scroller', 
       display: 'bubble', 
       wheels: [ // Wheel groups array 
        [ // First wheel group 
        { 
         label: 'Number', 
         values: ['9','8','7','6','5','4','3','2','1'] 
        } 
        ] 
       ], 
       onSelect: function(valueText, inst) { 
       } 
      }); 

,我想要使用的功能是mobiscroll的setValue function

我将它设置为“2”的值。

var valueArray = ["2"]; 
$('#mobiInput').mobiscroll('setValue', valueArray, true); 

这实际上有效......我第一次打开对话框页面。输入显示值为2,当我弹出滚动条时,选择2的值。

但是,当我关闭对话框(通过单击取消按钮,确定按钮或关闭图标)并重新打开对话框时,setValue函数似乎不工作。 2的值不在输入中。当我弹出滚动条时,默认为第一个值9.

我的猜测是,它不是mobiscroll中的错误,而是我对jQM ajax导航的误解。任何洞察力将不胜感激。

感谢

回答

1

问题是Mobiscroll每次打开对话框时被加载样式表和JS库。虽然从DOM中删除了外部对话框,但不会删除与Mobiscroll有关的库。

  • 解决方案1:

    负载相关Mobiscroll以及初始化索引/第一页的<head>代码的所有库。

    <!-- index/first page --> 
    <head> 
        <!-- Mobiscroll style sheet --> 
        <!-- MobiScroll JS library --> 
        <script> 
         $(document).on("pagecreate", "#dialogID", function() { 
         /* initialize Mobiscroll and setValue */ 
         }); 
        </script> 
    </head> 
    
  • 解决方案2:

    加载索引/第一页的<head>相关Mobiscroll所有库。对于初始化代码,将其放置在对话框 div。但是,您需要解除绑定pagecreate并再次绑定它。

    <!-- index/first page --> 
    <head> 
        <!-- Mobiscroll style sheet --> 
        <!-- MobiScroll JS library --> 
    </head> 
    
    <!-- external dialog --> 
    <div data-role="page" id="dialogID" data-dialog="true"> 
        <script> 
         $(document).off("pagecreate", "#dialogID").on("pagecreate", "#dialogID", function() { 
         /* initialize Mobiscroll and setValue */ 
         }); 
        </script> 
    </div> 
    

Demo

+1

与往常一样,你说得对,奥马尔!你就像我在jQuery手机世界中的守护天使。大声笑 – kane

+0

@ kane欢迎您;) – Omar

相关问题