方案: 包含选择下拉列表的可拖动DIV元素 Draggable有一个克隆助手。 在下拉列表中选择一个选项。 拖动时,克隆帮助程序不会保留新选择的选项。相反,它使用在加载元素时选择的原始选项。
示例:
html代码:
<div class="master">
<div class="draggable-container">
<div class="select-container">
<select class="select">
<option value="value 1">Value 1</option>
<option value="value 2">Value 2</option>
<option value="value 3">Value 3</option>
</select>
</div>
</div>
</div>
使用Javascript:
$( '.draggable-container' ).draggable({
disabled: false,
connectToSortable: ".sortable-container",
helper: "clone",
revert: "invalid",
opacity: 0.35
});
预期行为:克隆帮助程序应保留新选择的选项
我在这一点上看到的唯一方法是向drag事件添加一个函数,该函数捕获原始元素的值,然后将该值应用于克隆。但是我的直觉告诉我,jQuery应该有一个设置来保持克隆与原始元素的更新保持同步。
示例:
$( '.draggable-container' ).draggable({
disabled: false,
connectToSortable: ".sortable-container",
helper: "clone",
revert: "invalid",
opacity: 0.35,
drag: function( event, ui ) {
$( this ).find( '.select' ).each(
function(){
var indice = $( this ).val();
var u = ui.helper[0];
$( ui.helper[0] )
.find( '.select' ).each(
function(){
$( this ).val( indice );
});
});
}
});
最后,当我通过拖动到不同的可排序元素来组合draggable和sortable时,删除的克隆将恢复为原始选择 - 即使我使用“drag”事件来更新克隆。
我可能只是在sortable上为更新创建了另一个函数,但这似乎是最长的路径。
问题:jQuery-ui draggable上是否有任何设置使克隆助手保留选择更改?
答案 0 :(得分:0)
重复
Clone isn't cloning select values
经过进一步研究后,我在JQuery bug跟踪器中找到了这张票 解释错误并提供解决方法的系统。显然, 克隆选择值太昂贵,所以他们不会修复它。
因此,每种情况都需要特定的解决方法。