我想在水平块中动态创建select
元素。并且有趣的结果。什么是正确的方法?
答案 0 :(得分:2)
您需要定义要添加新元素的位置。为此,请使用.after()
。然后,您需要在生成/修改的控制组上应用样式。
在这里演示:http://jsfiddle.net/Palestinian/rKGtQ/
代码:
// append select menu after Button div
$("#Button_show_filters").after('<select id="sm"><option>Opt 1</option><option>Opt 2</option></select>');
// apply styles on select menu
$("#sm").selectmenu();
// add options to controlgroup
$( "#test" ).controlgroup( "option", "corners", true );
// create controlgroup
$( "#test" ).controlgroup().trigger('create');
controlgroup div ID为#test
。
答案 1 :(得分:1)
我认为主要问题是每次“推我!!”按下按钮,您将追加id
属性为sm
的select元素。拥有相同id的多个元素是无效的HTML,可能会导致Javascript出现问题。请参阅this question。
即,$("#sm")
行不知道您要尝试定位哪个选项。
也许你应该尝试这样的事情:
$("button").click(function () {
$("#div_for_harakteristikinomenklatury_list").append('<select><option>Opt 1</option><option>Opt 2</option></select>');
$("#div_for_harakteristikinomenklatury_list select:last").selectmenu();
});
此外,您应该删除按钮的onclick
属性。你不需要它。将单击处理程序传递给click
函数应该在单击按钮时运行该函数。
答案 2 :(得分:1)
您应该使用class并仅在最后添加的select元素上应用selctmenu,而不是使用id。检查这个小提琴
$("button").click(function show_filters() {
//alert("Hello");
$("#div_for_harakteristikinomenklatury_list").append('<select class="sm"><option>Opt 1</option><option>Opt 2</option></select>');
$(".sm:last").selectmenu();
})
答案 3 :(得分:0)
将$("#sm").selectmenu();
更改为$("select").selectmenu();
使用上面提到的方法,无论你新推出的元素的id或类是什么,都会得到应用的样式。
在这里查看实时小提琴http://jsfiddle.net/mayooresan/VMj4U/6/