表のセルを結合した場合に、クリックされたセルの位置を特定する方法はありますか? 20 個のセルなどが結合されており、ユーザーが 7 番目のセルなどをクリックしたかどうかを確認したいと考えています。
特定のことを意味するセルを結合しましたが、ユーザーがどのセルをクリックしたかを論理的に把握する必要があります (結合されている場合でも)。
これは可能ですか?
表のセルを結合した場合に、クリックされたセルの位置を特定する方法はありますか? 20 個のセルなどが結合されており、ユーザーが 7 番目のセルなどをクリックしたかどうかを確認したいと考えています。
特定のことを意味するセルを結合しましたが、ユーザーがどのセルをクリックしたかを論理的に把握する必要があります (結合されている場合でも)。
これは可能ですか?
同じテーブル内の結合されていないセルのサイズに基づいて判断できます。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);
});