我必须创建一个包含单元格的表,单击该菜单项,我必须给参数一个依赖于所有单击的单元格的值
如果是单个单元格,则可以通过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');
}
});