我在日历类型的应用程序上使用可拖动和拖放的jQuery UI。jQuery UI可拖动的事件顺序
日历呈现为一个表,每行有七个单元格,每个单元格表示一天。每天分为四个季度,在日历内的另一个表格中表示为单元格。这些内表有n行,其中n取决于每个月的工作数量。
我有可拖动的div代表预订,预订可以消耗任何数量的宿舍,因为你拖动它们时我需要关注目标消耗范围。要做到这一点,我使用了拖动和列如下
over: function (event, ui) {
// walk forward and highlight the correct cells
//console.log('in');
var numCells = ui.draggable.attr('db:length') * 4;
var me = jQuery(this);
me.addClass('me');
var cells = jQuery(".inner-table .allowableTarget td");
for (var i = 0; i < cells.length; i++) {
if (jQuery(cells[i]).hasClass('me')) {
cells.slice(i, i + numCells).addClass('drop-hover');
return;
}
}
},
out: function (event, ui) {
// unhighlight the highlighted cells from over...
//console.log('out');
var items = jQuery(".inner-table td.drop-hover");
items.removeClass('drop-hover');
var me = jQuery(this);
me.removeClass('me');
},
这主要工作,只要我拖着从左至右其工作正常。如果我从右向左拖动,它不会。看来,其原因是,取决于我以何种方式将事件以不同的顺序拖动。如果我从右向左拖动,则新单元格将在从旧单元格出来之前触发,除非它是内部表格的第一个单元格,在这种情况下,当我拖动到前一个内部表格的最后一个单元格时,它将起作用。
我的问题是;有没有更好的方法来实现我想要的?或者一种方法来确保我总是在结束之前打出电话?
啊明显的答案给出来的东西移到了......有人开始知道一种让它更有效的方法,它看起来有点迟缓吗? – kmcc049
虽然,这意味着当它们拖到完全不同的地方时,它不会忽略突出显示的行 – kmcc049