実際に私のコードが期待どおりに動作しない理由がわかりません。テーブルの各行にマウスを重ねると、以前にロードしたJSONの画像を表示したいと思います。各イメージは行によって異なり、別の要素の表の外側に表示したいと考えています。"テーブルtr"、 "テーブルtbody"、JavaScriptで動作しない "テーブル"
この時点で私はホバーを持つテーブルを持っています。(私はすべての行に同じ画像を使用しています)しかし、それはテーブルヘッドを含む要素全体に影響します。私は頭の上にホバリングを避けたいが、それは "tblList"でのみ動作し、 "tblList tr"、 "tblList tbody"またはそれに類するものに変更しようとするたびに動作しない。あなたが解決策を見たら私に教えてください。ありがとう!
EDITED:ホバーをコピーしてリスト機能に貼り付けると、最後に「tblList .tablerow」が使用されます。なぜそれが外にあれば、なぜ動作しないのか理解できません。
HTML:
<article class="table-responsive">
<table class="table table-striped table-responsive" id="tblList">
</table>
</article>
JS:
$("#tblList").hover(function() {
var piso1 = JSON.parse(tbPisos[0]);
$('#displayDiv img').attr("src", piso1.Foto);
}, function(){
$('#displayDiv img').attr("src", null);
});
リスト機能:
function List(){
$("#tblList").html("");
$("#tblList").html(
"<thead>"+
"<tr>"+
//"<th></th>"+
"<th>Precio</th>"+
"<th>Direccion</th>"+
"<th>Ciudad</th>"+
"<th>Fecha</th>"+
"<th>Estado</th>"+
"</tr>"+
"</thead>"+
"<tbody>"+
"</tbody>"
);
for(var i in tbPisos){
var pisos= JSON.parse(tbPisos[i]);
$("#tblList tbody").append("<tr class ='table-row'>"+"td"+
// "<td>"+pisos.ID+"</td>" +
"<td>"+pisos.Precio+ " €"+"</td>" +
"<td>"+pisos.Direccion+"</td>" +
"<td>"+pisos.Ciudad+"</td>" +
"<td>"+pisos.Anyo+"</td>" +
"<td>"+pisos.Estado+"</td>" +
+"</tr>");
}
}
この解決策はどちらも機能しませんが、リスト機能の中でホバーコードを移動しても明らかに機能します。私はなぜそれが外側にあるのかわからないのです... – Rousen
動的に追加されたHTML要素にイベントをバインドするには 'on()'メソッドを使う必要があります。 –
そして、あなたのホバー機能で 'var piso1 = JSON.parse(tbPisos [0]);' 'piso1.Foto'の値を取得していることを確認し、エラーがあればコンソールをチェックしてください。 –