【问题标题】:how to create a jquery mobile select menu at pagebeforeshow?如何在 pagebeforeshow 上创建一个 jquery 移动选择菜单?
【发布时间】:2012-02-23 19:47:49
【问题描述】:

我在 Jquery Mobile 中使用 dataTables。我的 dataTable 是在 pageBeforeShow 上启动的。在我的 init 回调函数中,我构造了一个 JQM 选择菜单。此菜单没有得到适当的增强 = 按钮在那里,但未创建自定义选择。

这是我的问题!

这是缩短的代码:

 $('div:jqmData(role="page")').live('pagebeforeshow', function(e, data) {

    /** init datatables **/
    $('.tbl_orders').dataTable( {
        /* callback */
        "fnInitComplete": function(oSettings, json) {

             var thead = $(oSettings.nTHead),
                 bodyRows = $(oSettings.nTBody).find("tr, TR"),
                 hdrCols = thead.find( /* all header columns */ );
                 /* create select */        
                 tableSelectMenu = $('<select name="toggleCols" id="toggleCols" multiple="multiple" data-icon="setup" data-iconpos="notext"></select>')

             /* loop through header cols add options */
             hdrCols.each(function(i){                  
               var toggle = $('<option value="'+id+'">'+th.text()+'</option>');
               tableSelectMenu.append(toggle);

               }); // end hdrCols loop 

             $('.stickSelectHere').append(tableSelectMenu)
             }
        });

如果我这样做,则选择按钮在那里但不执行任何操作,因为缺少自定义选择菜单。

我尝试在 pagebeforecreate 之前创建选择,因为那是我检查触摸设备并分配 data-native-menu="true/false" 的地方。但是将选择放在那里也没有任何好处,也许是因为我只是创建它并且在我的 tableInit 之前不要将它放入 DOM ... mh。

问题:
有人可以告诉我如何在 pagebeforeshow 上使用自定义菜单创建选择吗?

感谢您的帮助!

【问题讨论】:

    标签: javascript jquery events select jquery-mobile


    【解决方案1】:

    您可能只需要在追加后添加以下内容,即

    $('.stickSelectHere').append(tableSelectMenu)
    $('#toggleCols').selectmenu('refresh');
    

    【讨论】:

    • :-) 也发现了这一点。谢谢!
    • 虽然我在我的 js 文件的开头插入了选择,所以它在 DOM 中。然后我可以添加 data-native-menu=true/false,添加选项,刷新并将其移动到最终目标。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 2016-07-03
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    • 1970-01-01
    相关资源
    最近更新 更多