gpt4 book ai didi

javascript - 克隆时的问题 - jquery

转载 作者:数据小太阳 更新时间:2023-10-29 05:27:26 25 4
gpt4 key购买 nike

我正在使用这个 plugin

现在我正在做一种克隆选择下拉列表的方法。添加克隆 div 的按钮。因此,用户有一个初始下拉列表,但他可以添加更多。 div 被克隆。

主要问题是,当我克隆 div 时,下拉菜单与初始下拉菜单相关联,而与新的下拉菜单无关,即克隆。结果是:新克隆的 div 的所有下拉菜单都有打开与第一个关联的选择的事件。

enter image description here

调用插件的脚本

<script language="javascript" type="text/javascript">
$(document).ready(function() {
$(".mydds").msDropDown();
})

</script>

要克隆的脚本

<script type="text/javascript">
$(document).ready(function() {
$('#adicionar').live('click', function(){
var num = $('.linguas').length;
var newNum = new Number(num + 1);

var newElem = $('#copiar' + num).clone(true).prop('id', 'copiar' + newNum);

newElem.children(':text').prop('name', "myformdata[languages" + newNum + "]").prop('languages', 'languages' + newNum).val('');
$('#copiar' + num).after(newElem);
$('#apagar').prop('disabled', '');

});

</script>

有解决问题的办法吗?基本上我认为与下拉菜单相关的事件没有被复制......谢谢

最佳答案

假设每个克隆元素只有一个下拉菜单,您可以使用

$('#adicionar').live('click', function(){
var num = $('.linguas').length;
var newNum = new Number(num + 1);

var newElem = $('#copiar' + num).clone(true, true).attr('id', 'copiar' + newNum);

var id = newElem.find('select').msDropDown().data('dd').get('id');

newElem.find('[id]').each(function(){
$(this).attr('id',this.id.replace(id,'customid_' + newNum,'g') );
});


$('#copiar' + num).after(newElem);

newElem.find('select').msDropDown();
});

问题在于插件为初始 select 元素提供了一个 id,并使用该 id 来创建其他元素并引用其相关的 select

您将需要修改所有这些 ID 以及引用..(上面的代码就是这样做的..)

演示 http://jsfiddle.net/gaby/CXBZR/3/

关于javascript - 克隆时的问题 - jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6300171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com