无法动态添加自定义选择在jQuery Mobile中工作

时间:2017-05-11 23:12:21

标签: javascript jquery jquery-mobile

我已经查看了此问题时可用的所有类似问题,并且所提供的解决方案均未在下面的代码中使用。谷歌也没有帮助,除了我确实发现动态代码的一些问题,其中整个菜单没有被包装,但这些问题应该用触发器或者EnhanceWithin方法修复 - 这些已在这里尝试过。

我是一个相当新的javascript和jquery库,这是我第一个使用jquery mobile的应用程序。

从php文件生成的原始html:

<div class="cell_container force_org_select">
<label for"force_org[new_555]" class="ui-hidden-accessible">Troop Type</label>
<select name="force_org[new_555]" id="force_org[new_555]" class="roster_cell" data-mini="true">
<option value="hq">HQ</option>
<option value="elite">Elite</option>
<option value="solo">Solitaire</option>
<option value="formation">Std Formation</option>
</select>

处理动态注入的Javascript函数:

    $(document).on('click','.add_item', function(event) {
    event.preventDefault();
    var the_link = $(this).attr('href')
    var area = getParameterByName(the_link, 'area');
    var type = getParameterByName(the_link, 'type');
    var squad_id = getParameterByName(the_link, 'squad_id');
    var vehicle = getParameterByName(the_link, 'vehicle');
    var divider = getParameterByName(the_link, 'divider');
    var preset = $('#preset').val();

    $.post(cmd_ajax.ajaxurl,{action: 'cmd_add_item_mobile', type: type, preset: preset, squad_id: squad_id, vehicle: vehicle, divider: divider}, function(data) {
        if(type == 'squad' || type == 'divider') {
            $('#list').append(data).enhanceWithin();
            //$('#list').append(data).trigger("refresh");
            //$('#list').append(data).trigger("create");

            $('.squad_help_button').tooltipster({
                contentCloning: true,
                trigger: 'custom',
                triggerOpen: {
                    click: true,
                    tap: true
                },
                triggerClose: {
                    click: true,
                    tap: true
                }
            });

        }
        else {
            $('#' + area).append(data).enhanceWithin();
        }
        //console.log("squad_id:"+this_id);

        set_unit_sortable();
    });

    return false;
});

我也尝试在函数中添加.selectmenu("refresh",true),但似乎什么也没做。非动态生成的自定义选择工作正常。

如果我在生成的选择菜单上使用data-native-menu="false"属性,则弹出窗口不起作用,您无法选择任何内容,如果删除该属性,则原生选择将按预期工作。

我考虑过在函数的最后使用selectmenu()刷新,但我似乎也无法捕获select菜单的元素id。我唯一的猜测是,当我尝试检索它时,它还没有在DOM中创建。

0 个答案:

没有答案