如果合并了表格单元格,有没有办法找出单击哪个单元格位置?我们有20个单元格等合并在一起,我们想弄清楚用户是否点击过例如第7个单元格
我们合并的单元格意味着特定的东西,但我们现在需要逻辑地弄清楚用户点击了哪个单元格(即使它们已合并)。
这可能吗?
答案 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')并将该表复制到隐藏的单元格