我必须创建一个包含单元格的表,单击该菜单项,我必须给参数一个依赖于所有单击的单元格的值

如果是单个单元格,则可以通过jquery中的click函数来完成。但是有可能用户可以选择多个单元格,并且如果选择的单元格彼此相邻,则应该更新参数,如果选择的单元格不相邻,则应该提示用户。

这似乎非常复杂。如何在jQuery中完成此操作?

更新:

该表是一个类似于日历的应用程序,其中时间和地点分别是行和列。行中的每个单元格代表一个1小时的时隙。用户可以选择多个1小时时隙,这些时隙可以创建一个更大的时隙(例如3小时时隙),以便在跨越该时隙的表中创建一个事件。

最佳答案

这是一个很好的工作示例。您监视鼠标向下/向上事件,以确定用户将鼠标拖到了哪些单元格上。然后,您添加一个类,以便知道它们是哪个类。另外,您将一个类添加到父行。

然后,当发生鼠标悬停时,您检查是否已激活多行。如果是这样,则tr.active将大于一。

http://jsfiddle.net/mrtsherman/bCcbZ/

var mousedown = false;

$(document).mousedown(function() {
    mousedown = true;
});

$(document).mouseup(function() {
    mousedown = false;
    if ($('tr.active').length > 1) {
        alert('separate rows');
    }
    else { alert('same row'); }

    $('.active').removeClass('active');
});

$('td').mousedown(function() {
    $(this).addClass('active').parent().addClass('active');
});

$('td').mouseover(function() {
    if (mousedown) {
        $(this).addClass('active').parent().addClass('active');
    }
});​

10-06 01:31