gpt4 book ai didi

JqueryUI Slider 与 Sortable 冲突

转载 作者:行者123 更新时间:2023-12-01 04:09:21 25 4
gpt4 key购买 nike

我正在尝试创建一个具有不同类型输入的拖放表单。选择框、文本框和单选框工作正常,但范围 slider 在拖入可排序字段时不起作用。

我在这里创建了一个 fiddle :

http://jsfiddle.net/b8HpR/

但是硬编码的那个可以工作。我需要一个双 slider ,否则 HTML5 范围输入会很棒。

任何帮助将不胜感激!

$(function () {
$(".slider-range").slider({
range: true,
min: 0,
max: 500,
values: [75, 300],
slide: function (event, ui) {
$(".amount").val("$" + ui.values[0] + " - $" + ui.values[1]);
}
});
$("#amount").val("$" + $("#slider-range").slider("values", 0) +
" - $" + $("#slider-range").slider("values", 1));



/* populate the list of fields into the div */
var fields = getFields();
$(fields).each(function (index, value) {
$("#listOfFields").append("<div class='fld' fieldtype='" + value.type + "'>" + value.label + "</div>");
});

$(".fld").draggable({
helper: "clone",
stack: "#containerTable div",
cursor: "move"
});

$(".droppedFields").droppable({
activeClass: "activeDroppable",
hoverClass: "hoverDroppable",
accept: ":not(.ui-sortable-helper)",
drop: function (event, ui) {
var fieldtype = $(ui.draggable).attr("fieldtype");
$("<div class='fld' fieldtype='" + fieldtype + "'></div>").html(ui.draggable.html()).appendTo(this);
}
});

$(".droppedFields").sortable();
$(".droppedFields").disableSelection();

最佳答案

创建一个函数initSliders ()并在构建您删除的对象时调用此函数。虽然这会导致多次初始化,但通常不会造成问题。

$(".droppedFields").droppable({
activeClass: "activeDroppable",
hoverClass: "hoverDroppable",
accept: ":not(.ui-sortable-helper)",
drop: function (event, ui) {
var fieldtype = $(ui.draggable).attr("fieldtype");
$("<div class='fld' fieldtype='" + fieldtype + "'></div>").html(ui.draggable.html()).appendTo(this);

// initSlider is called here after appending the code.
initSliders();
}
});

因此,每次初始化新 slider 时,我认为它都应该初始化为预设值,因此它会初始化为全局定义的 minValue 的值和maxValue 。为了确保所有 slider 都更改了位置,我添加了 $(".slider-range").slider("option", "values", [minValue, maxValue]);到幻灯片功能。

var minValue = 75;
var maxValue = 300;

function initSliders() {
$(".slider-range").slider({
range: true,
min: 0,
max: 500,
values: [minValue, maxValue],
slide: function (event, ui) {
minValue = ui.values[0];
maxValue = ui.values[1];
$(".amount").val("$" + minValue + " - $" + maxValue);
$(".slider-range").slider("option", "values", [minValue, maxValue]);
}
});

$(".amount").val("$" + minValue + " - $" + maxValue);
}

$(function () {
initSliders();
});

因为,我不确定这是否是您想要的,所以我添加了一个工作 fiddle

关于JqueryUI Slider 与 Sortable 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22672186/

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