わかりました。この質問を表現するのはちょっと難しいので、できる限り問題を説明します。画像をクリックして設定オーバーレイを表示するこのコードを、多くのテーブル行の 1 つをクリックしてオーバーレイを開くコードに変換しています。
コードにはこれら 2 つのファイルが含まれます (ただし、プロジェクト内のファイルはこれらだけではありません)。
index.html
<div class="details">
<h3 align="center">Preferences</h3>
</div>
</div>
<script>
/* Overlay */
$(document).ready(function() {
$("tr[rel]").overlay();
});
</script>
<!-- <script src="js/jquery-1.3.2.min.js" type="text/javascript"></script> -->
<script src="js/jquery.qtip-1.0.0-rc3.min.js" type="text/javascript"></script>
<script src="js/jquery.qtip.debug.js" type="text/javascript"></script>
<script>
/* TOOL TIPS */
/* $(document).ready(function() {
$(#'milehf').qtip({
content: '100%',
style: {
width: 200,
padding: 5,
background: '#A2D959',
color: 'black',
textAlign: 'center',
border: {
width: 7,
radius: 5,
color: '#A2D959'
},
tip: 'bottomLeft',
name: 'dark' // Inherit the rest of the attributes from the preset dark style
}
});
});*/
</script>
table.js
$.ajax({
async:false,
dataType: "json",
url: "http://localhost:8080/JSP/connection2.jsp",
success: function(data){
cbspData = data;
console.log(cbspData[1].Satellite);
}
});
function table4()
{
console.log(cbspData[1].Satellite);
//alert(data2[1].id);
var thisDat = cbspData;
if (!document.getElementsByTagName) return;
tabBody=document.getElementById("mytable")
//tabBody=document.getElementsByTagName("TBODY").item(0);
//var Parent = tabBody.getElementsByTagName("TBODY");
while(tabBody.hasChildNodes())
{
tabBody.removeChild(tabBody.firstChild);
}
$.each(cbspData, function(i,dat){
row=document.createElement("TR");
row.setAttribute("number", dat.id);
row.id = "triggers";
row.rel="#mies1";
console.log(row.id);
console.log(row.rel);
//console.log(dat.Satellite);
document.createAttribute();
cell0 = document.createElement("TD");
cell0.innerHTML = dat.Mission;
//onMouseOver='alert(\"hello\"); document.getElementById(\"div" + i + "\").style.visibility = \"visible\";'
cell1 = document.createElement("TD");
cell1.innerHTML = dat.Satellite;
//$("#test-area table tbody tr:eq(" + i +") td:eq(0)").html(
// dat.id
//);
cell2 = document.createElement("TD");
cell2.innerHTML = dat.TerminalID;
// $("#test-area table tbody tr:eq(" + i +") td:eq(1)").html(
// dat.title
//);
cell3 = document.createElement("TD");
cell3.innerHTML = dat.Modem;
//$("#test-area table tbody tr:eq(" + i +") td:eq(2)").html(
// dat.subtitle
//);
cell4 = document.createElement("TD");
cell4.innerHTML = dat.Teleport;
//$("#test-area table tbody tr:eq(" + i +") td:eq(3)").html(
// dat.ranges
//);
cell5 = document.createElement("TD");
cell5.innerHTML = dat.ModemLock;
//textnode5=document.createTextNode(dat.measures);
//cell5.appendChild(textnode5);
row.appendChild(cell0);
row.appendChild(cell1);
row.appendChild(cell2);
row.appendChild(cell3);
row.appendChild(cell4);
row.appendChild(cell5);
tabBody.appendChild(row);
});
}
Table.js は、rel 属性が "#mies1" に正常に設定されているにもかかわらず、JSP によって生成された情報からテーブルを生成します。ただし、プレーンな html で作成されたテーブルの rel を index.html に設定すると、問題なく動作します。これは、ページがロード サイクルを終了し、テーブルが完全に生成される前にオーバーレイ コードを実行することに関係していると思います。これは何か関係があるのでしょうか?生成された TR をクリック可能にするにはどうすればよいですか?