当前位置: 首页 > 面试题库 >

JQM(jQueryMobile)动态添加的元素无法正确显示并且未应用CSS

司马项明
2023-03-14
问题内容

我在动态添加选择标签时遇到问题,没有应用CSS和JQM添加的其他html标签。

HTML:

<div data-role="page" id="page_1">
    <div id="select_option_groups">
        <div data-role="fieldcontain">
            <select name="select_options_1">
                <option value="" selected>Please select an option</option>
                <option value="foo">Foo</option>
                <option value="bar">Bar</option>
            </select>
        </div>
    </div>
</div>

JS:

$(function(){
    var counter = 2;
    var onChange = function(e){
        val = $(':selected',this).val() || '';
        if (val != ''){
            // they may be able to toggle between valid options, too.
            // let's avoid that using a class we can apply
            var c = 'alreadyMadeASelection';
            if ($(this).hasClass(c))
                return;
            // now take the current select and clone it, then rename it
            var newSelect = $(this)
                .clone()
                .attr('name','select_options_'+counter)
                .attr('id','select_options_'+counter)
                .appendTo('#select_option_groups')
                .change(onChange);
            $(this).addClass(c);
            counter++;
        } else {
            var id = $(this).attr('name').match(/\d+$/), parent = $(this).parent();
            $(this).remove();

            // re-order the counter (we don't want missing numbers in the middle)
            $('select',parent).each(function(){
                var iid = $(this).attr('name').match(/\d+$/);
                if (iid>id)
                    $(this).attr('name','select_options_'+(iid-1));
            });
            counter--;
        }
    };
    $('#select_option_groups select').change(onChange);
});

我试过了:

// this gets the select tags to stack but still no CSS
$(newSelect).fieldcontain('refresh');

// does nothing
$(newSelect).page();

// does nothing
$('#page_1').page();

问题答案:

我不知道为什么.selectmenu('refresh');不起作用,但是对于页面-您可以在元素上使用一次。之后,它将在下一次跳过该元素。

  1. 在添加内容之前克隆选择(不带参数的克隆)
  2. 取出原件
  3. 向克隆的元素添加内容
  4. 放回dom
  5. 调用.page().selectmenu()对其进行调用,或调用.page()包含它的元素。

应该有帮助。如果不是,请尝试从头开始创建一个新的select元素,并使用原始元素中的选项加载该元素,然后添加新元素,然后继续。

[编辑]

以上只是一个猜测。您的代码是正确的。只需调用一次.selectmenu() 工作代码即可



 类似资料:
  • 问题内容: 例如,如何转换字符串。我从网站获得的字符串,未在中进行编码。它工作在计划只是罚款使用Swing( ),但是当我过去的链接罐子Windows控制台(要运行的应用程序),它不显示在字符串中正确的字符的字符和。 我从网站上得到那串 。如何在Swing应用程序中进行编码或显示,因此当我运行应用程序时,它将向我显示此字符(以及课程的其他unicode字符(“Ž”,“ž”,“č”和“Š”) )?

  • 我希望有人能帮我解决以下问题。我正在创建一个Java桌面应用程序,其中有一个包含两个JPanel的JPanel topicPanel;TopicButton面板包含JButton createEntryButton和topicTabCardsPanel,后者实现CardLayout。单击createEntryButton时,我试图动态创建并添加一个新的JPanel entryPanel,其中包含J

  • 问题内容: 我想要一个JFrame,在左右两侧有一个边框,边框为黑色,宽度为withfOfJFrame / 10。 现在,我的尝试如下所示: 这会在左右两侧添加一个黑色边框,但是该边框具有固定的大小,并且在调整窗口大小时不会重新计算。大小甚至不是800(JFrame的开始宽度)的1/10。 我究竟做错了什么?还是有更好的方法来做到这一点? 问题答案: 您可以使用和适当的权重来获得所需的结果:

  • 我为之构建的客户端需要一个功能,该功能要求我围绕大量内容(包括“新闻”部分)包装一个滚动视图。因此,我不能使用ListView。我试图手动将所有ListItem视图膨胀为垂直线性布局。我意识到我会失去ListView的优化功能,但这是客户想要的,所以我不得不这样做。我觉得我的解决方案应该是可行的,但屏幕上没有任何视图。我的ScrollView内部是一个LinearLayout,内部是第二个Line

  • 我正在使用selenium-java-2.53.jar点击一个网站并执行搜索操作。serach结果出来后,我需要读取数据。网站url为https://340bopais.hrsa.gov/CoveredEntitySearch。我在340B ID的文本框中放了一个值为CH02123B,然后单击“搜索”。在此之后,结果显示在一个表中。在这之前,它和硒的作用很好。但在此之后,当我尝试使用driver.