我有一个日历,用户应该能够选择日期(它们基本上是表格单元格)。问题是jQuery UI对选择的支持有点粗略。特别是,如果用户使用CTRL键选择或取消选择日期,我似乎无法在选择“停止”事件时非常容易地获得所选元素的总列表。这是我目前正在做的事情,但效率似乎非常低:
global.selected = [];
$('#calendar').selectable({filter: 'td',
selected: function(event, ui)
{
for (var a = 0, id = +ui.selected.children[0].id, found = false; a < global.selected.length; a++)
{
if (global.selected[a] == id)
{
found = true;
break;
}
}
!found && global.selected.push(id);
},
unselected: function(event, ui)
{
for (var a = 0, id = +ui.unselected.children[0].id; a < global.selected.length; a++)
{
if (global.selected[a] == id)
{
global.selected.splice(a, 1);
break;
}
}
},
stop: function(event, ui)
{
console.log(global.selected);
}
}
答案 0 :(得分:1)
我是jQuery的新手,但我会以这种方式接近它并避免全局化。
$('#calendar').selectable({
filter: 'td',
stop: function(event, ui) {
var selected = $.map($('#calendar > tbody > tr > td.ui-selected'),function(el) {
return el.id;
});
console.log(selected);
}
});