こんにちは、私の Web ページでは、DOM 要素の一部が動的に生成され、マウスダウン イベントで DOM 要素のインデックス値を取得する関数を jquery で作成しました。しかし、私の関数は常に 7 を返します。これが私の dom 構造と関数コードです。
<div id = "viewer">
<div id="pageContainer1" >
<canvas id="page2" width="741" height="959"></canvas>
<div class="textLayer">
<div>......some text here....</div>
<div>......some text here....</div>
<div>......some text here....</div>
</div>
</div>
<div id="pageContainer2" >
<canvas id="page2" width="741" height="959"></canvas>
<div class="textLayer">
<div>......some text here....</div>
<div>......some text here....</div>
<div>......some text here....</div>
</div>
</div>
<div id="pageContainer3" >
<canvas id="page3" width="741" height="959"></canvas>
<div class="textLayer">
<div>......some text here....</div>
<div>......some text here....</div>
<div>......some text here....</div>
</div>
</div>
</div>
<script>
var indexInital, pageStr, containerStr, selector;
//function for highlighting
$(function() {
$(window).scroll(function(){
pageStr = String(PDFView.page);
containerStr = "\"#pageContainer".concat(pageStr);
selector = containerStr.concat(" > .textLayer > div\"");
});
});
$(function() {
$('#viewer').on('mousedown', selector ,function () {
indexInitial = $(this).index();
console.log(indexInitial); });
});
</script>
上記のコードでは、id viewer を持つ div のみが静的であり、その中の div は動的に生成されます