找出哪些合并的表格单元格会被点击?

时间:2013-05-29 09:20:45

标签: javascript html html5

如果合并了表格单元格,有没有办法找出单击哪个单元格位置?我们有20个单元格等合并在一起,我们想弄清楚用户是否点击过例如第7个单元格

我们合并的单元格意味着特定的东西,但我们现在需要逻辑地弄清楚用户点击了哪个单元格(即使它们已合并)。

这可能吗?

2 个答案:

答案 0 :(得分:1)

您可以根据同一张表中未合并细胞的尺寸来判断它。这是一个使用jQuery的例子(仅仅因为它比原生JS更简洁来证明这一点):

var $mergedTd = $('td.myMergedTd'),
    $unmergedThs = $('th');

$mergedTd.click(function(e) {
  var clickedUnmergedIndex = 0;
  $unmergedThs.each(function(i) {
    var $th = $(this);
    if(e.pageX < $th.pageX + $th.width()) {
      clickedUnmergedIndex = i;
    } else {
      // Stop iterating; we've found the unmerged index
      return false;
    }
  });

  alert('You just clicked 0-based cell index #' + clickedUnmergedIndex);
});

答案 1 :(得分:0)

我会在DOM中保留该表的两个副本。一个可见,一个隐藏。您在可见表上单击事件,在合并单元格之前,标记单击的单元格(例如,向其添加数据属性,指示它已标记为数据标记='1')并将该表复制到隐藏的单元格