2014-09-11 113 views
0

我有一个小问题,从一个下拉jQuery克隆和.change。jQuery克隆和.change下拉

会发生什么事情,我需要用下拉列表中的数字更新div,并且一切正常,当我克隆下拉列表时,问题就出现了,此后克隆的项目不会使用所选值更新数字,并且第一个将全部更新。

<button type="button" id="addmore" >Add More</button> 
<br> 

<div class="dynamic-content1"> 
    <select name="list" class="list" id="name"> 
     <option value="25">Ticket 1</option> 
     <option value="50">Ticket 2</option> 
     <option value="70">Ticket 3</option> 
    </select> 
    <div class="tag">25</div> 
</div> 

和jQuery:

var count = 0; 
$('#addmore').click(function(){ 

    var $clone = $('.dynamic-content1:eq(0)').clone(); 
    $clone.find('[id]').each(function(){this.id+=''}); 
    $clone.attr('id', "added"+(++count)); 
    $('.dynamic-content1:eq(0)').after($clone); 

}); 


$('#name').change(function(event) { 
    $('.tag').html($('#name').val()); 
}); 

工作小提琴:

http://jsfiddle.net/QuadDamage/ej0t9c0e/

我相信我应该运行的每个语句,但说实话,我没有看到如何做到这一点。

在此先感谢

回答

0

请将您的代码替换为下图。

$('#name').change(function(event) { 
    $('.tag').html($('#name').val()); 
}); 

添加该代码,请

$(document).on('change', '.list', function() { 
    $(this).parent().next().html($(this).val()); 
}); 
+0

工作良好,您是否在意详细说明为什么分离的$(文档)在做什么代码?谢谢 – nunorbatista 2014-09-11 13:19:07

+0

你的代码很好,直到我把它包装在一个div中,现在又被打破了。这是与.next相关的东西我相信 - > http://jsfiddle.net/QuadDamage/p843nc9j/ – nunorbatista 2014-09-12 14:52:23

+0

我用'$(this).parent()。next()。html($(this))替换了代码。 val());' – Bira 2014-09-13 03:05:27

0

jQuery的不守的选择,同时使元素的克隆。你可以试试这个

.clone(true) 

这将复制所有平均值和下拉数据。我希望这会帮助你使用事件。