gpt4 book ai didi

javascript - 将 DIV 拖动到水平可排序容器

转载 作者:行者123 更新时间:2023-11-28 18:11:04 25 4
gpt4 key购买 nike

我正在构建某种播放列表创建器。我有一些用户可以选择的元素和一个水平可排序的时间轴区域来放置这些元素。

可拖动:

$(".Name:not(#Add a .Name)").draggable({
revert: 'invalid',
start: function(){
$('#MainPage').css('cursor', '-moz-grabbing');
$(".Name").css('cursor', '-moz-grabbing');
},
// helper: "clone",
helper: function() {
return $("<div class='"+$(this).parent().attr('class')+"' id='"+$(this).parent().attr('id')+"'><div class='"+$(this).attr("class")+"' id='"+$(this).attr("id")+"'>"+ $(this).attr("class").split(' ')[1] +"</div></div>");
},
stop: function() {
$('#MainPage').css('cursor', 'auto');
$(".Name").css('cursor', '-moz-grab');
},
connectToSortable: "#TimelineDrop",
appendTo: '#MainPage',
containment: 'DOM',
zIndex: 800,
addClasses: false
});

可排序的:

$("#TimelineDrop").sortable({ 
over: function(event, ui) {
var Breite = ((TimeSpace*5)/(TimeSpace/(currentspacing+24)))-2;
$("#TimelineDrop").append("<div class='TimelineMarker' style='width:"+ Breite +"px;'>\u00A0</div>");
},
receive: function(event, ui) {
dropped=true;
AddElementToTimeline($(this), event, ui, dropped);
},
start: function( event, ui ){
$('#MainPage').css('cursor', '-moz-grabbing');
$('.TimelineElement').css('cursor', '-moz-grabbing');
drag=true;
},
axis: "x",
stop: function( event, ui ){
$('#MainPage').css('cursor', 'auto');
$('.TimelineElement').css('cursor', '-moz-grab');
database.updateElementPosition($('.TimelineElement').index($(ui.item)), $(ui.item).children('.TimelineElementTitle').attr('id').split('D')[1], GET('id'));
drag=false;
}
});

我尝试了各种不同的东西,但无法让它正常工作。希望能够将元素从可用区域拖到时间轴,然后将它们放在所有已附加的元素之间。到目前为止,助手总是被附加(垂直)在现有元素之上,当我放下它时,最终元素被附加到最后一个位置。我希望很清楚我要归档的内容...

我这里有一把 fiddle :

http://jsfiddle.net/5SBax/4/

我希望标记显示在将添加元素的位置(在其他元素之间)。而且我需要摆脱 helper 元素,它每次都会被添加......

最佳答案

看看这个 fiddle 。我不太确定你在问什么,但这是拖放功能的一个很好的例子。我不能发表评论,我不太确定你在问什么。但祝你好运!

http://jsfiddle.net/cuhuak/4CHDZ/

function FieldType(typeName, name) {
var self = this;
self.TypeName = ko.observable(typeName || "");
self.Name = ko.observable(name || this.TypeName());
self.createField = function () {
return new Field(
{
Name: this.Name(),
TypeName: this.TypeName()
}
);
}
self.onDragStart = function(event, ui) {
dropFieldType = ko.utils.domData.get(this, "ko_drag_data");
};
self.onDragStop = function(event, ui) {
dropFieldType = null;
};
}

关于javascript - 将 DIV 拖动到水平可排序容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18635842/

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