我有一个可拖动对象的列表和一个可放置的目标。拖动开始时,将创建并呈现包含可放置目标的视图。我在帖子底部附上了一些突出显示所需操作的图像。
问题是 jQuery UI 似乎有一个错误。这篇文章:Droppable items not display hoverClass if they are displayed during drag operation似乎证实了这一信念。
我有这段代码可以启用可拖动性:
this.$el.find('.videoSearchResultItem ').draggable({
helper: function() {
var helper = $('<span>', {
text: VideoSearchResultItems.selected().length
});
return helper;
},
appendTo: 'body',
containment: 'DOM',
zIndex: 1500,
cursorAt: {
right: 20,
bottom: 30
},
start: function (event, ui) {
var draggedVideoId = $(this).data('videoid');
var draggedVideo = VideoSearchResultItems.get(draggedVideoId);
draggedVideo.set('selected', true);
$(ui.helper).addClass("ui-draggable-helper");
}
});
我的程序有一个事件侦听器,用于选择视频搜索结果。当一个被选中时,“AddItems”视图会呈现自身并过渡。
this.listenTo(VideoSearchResultItems, 'change:selected', function (changedItem, selected) {
if (selected && this.addItemsView === null) {
this.addItemsView = new AddItemsView();
this.$el.append(this.addItemsView.render().el);
this.addItemsView.show();
}
});
AddItemsView 在渲染期间初始化 droppable:
this.$el.find('i.droppable').droppable({
hoverClass: 'icon-drop-hover',
tolerance: 'pointer'
});
不幸的是,如果在呈现视图时我的可拖动对象已经在拖动——hoverClass 以及“over”事件都会失败。
我想知道是否有任何解决方法?我没有看到一个。