Javascript 克隆jquery时出现问题
我在用这个 现在我正在做一个方法来克隆选择下拉列表。添加克隆div的按钮。 因此,用户有一个初始下拉列表,但他可以添加更多。div被克隆 主要的问题是,当我克隆div时,下拉列表与初始下拉列表关联,而与克隆的新下拉列表无关。结果是:新克隆的div的所有下拉列表都有打开与第一个div关联的select的事件 调用插件的脚本Javascript 克隆jquery时出现问题,javascript,jquery,events,clone,Javascript,Jquery,Events,Clone,我在用这个 现在我正在做一个方法来克隆选择下拉列表。添加克隆div的按钮。 因此,用户有一个初始下拉列表,但他可以添加更多。div被克隆 主要的问题是,当我克隆div时,下拉列表与初始下拉列表关联,而与克隆的新下拉列表无关。结果是:新克隆的div的所有下拉列表都有打开与第一个div关联的select的事件 调用插件的脚本 <script language="javascript" type="text/javascript"> $(document).ready(function()
<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>
有什么办法解决这个问题吗?
基本上,我认为与下拉列表相关的事件没有被复制。。。
感谢您在您的脚本中呼叫。clonetrue。此true参数用于克隆事件和数据 从 .clone[withDataAndEvents] withDataAndEvents:表示 事件处理程序是否应 与元素一起复制。截至 jQuery 1.4,元素数据将 也抄袭了
如果删除此项,或将其设置为false,这将停止将事件克隆到新的div上。假设每个克隆的元素只有一个下拉列表,则可以使用
$('#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以及引用。。上面的代码就是这样做的
演示但我需要克隆事件。问题是div被克隆了,但是事件号没有。如果我按照你的建议去做,只有第一个下拉菜单起作用。我需要克隆div和事件。好吧,我很困惑。事件是否被复制?在您原来的问题中,您似乎在说它是复制的。@user455318:没问题。抱歉,我误解了这个问题。chrome、safari和IE8不起作用。只有在firefox中。几乎:@user455318,更新的代码使其更加详细和演示,而且现在似乎在所有浏览器中都能工作。。。