我有一个带按钮的页面,当用户点击该按钮时,将出现新的“选择标签”
新的select
有类'selector',并且在该调用上有一个jQuery调用,但不会触发
<ul id="ul">
<li>
<select class='selector'></select>
<input type='button' value='new select' id='newSelect'/>
</li>
</ul>
$(document).ready(function (){
var options = "<option>Select Name</option>";
options +="<option>Roma</option>";
options +="<option>Milano</option>";
$('#ul .selector').html(options);
});
$(document).ready(function(){
$('#ul').on('click','#newSelect',function(){
$('#ul').append("<li><select class='.selector'></select></li>");
});
});
答案 0 :(得分:2)
您应该删除此行中的点:
$('#ul').append("<li><select class='.selector'></select></li>");
到
$('#ul').append("<li><select class='selector'></select></li>");
如果你想像第一个那样填充选择列表,可以这样做:
http://jsfiddle.net/puUcp/19/
答案 1 :(得分:2)
实际上,填充选择器只会在文档加载时触发,并且应该从新的select-class中删除该点,并且应该单击选择器。 所以新代码应该是:
$(document).ready(function (){
var options = "<option>Select Name</option>";
options +="<option>Roma</option>";
options +="<option>Milano</option>";
$('#ul .selector').html(options);
$('#ul').on('click','#newSelect',function(){
$('#ul').append("<li><select class='selector'></select></li>");
$('#ul .selector').html(options);
});
});
答案 2 :(得分:2)
看起来你只需要克隆每次想要添加新元素时弹出的第一个选择元素(已经是)。这看起来像
$(document).ready(function(){
$('#ul').on('click','#newSelect',function(){
$('#ul').append($("#ul > li:first-child").clone());
});
});
<强> See it in action 强>
但是你不应该完全上面因为$("#ul > li:first-child")
包含id
的按钮 - 而且id
s在DOM中应该是唯一的。从按钮中删除id
会使事情变好。