jQuery UI选择 - 帮助降低效率

时间:2011-01-09 19:11:37

标签: javascript jquery jquery-ui performance

我有一个日历,用户应该能够选择日期(它们基本上是表格单元格)。问题是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);
    }
}

1 个答案:

答案 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);
    }
});