1

jquery を利用して、いくつかの div に画像を設定しています。jstree ノードをクリックすると、div が表示されます。動作しますが、ディレクトリに画像があるにもかかわらず、画像への呼び出しが空に戻ることがあります。

ここに私がやっていることを示すコードがあります:

}).bind("select_node.jstree", function (event, data) {

var ImgTeamA;
ImgTeamA = "img/"+node_id+"-teamA.png";
myImg1 = new Image;
myImg1.src=ImgTeamA

alert(myImg1.width);
alert(myImg1.src)

$("#div1").html(myImg1).css("border","1px solid");

問題はこれです。img ディレクトリに myImg1 が存在するのに、alert(myImg1.width) が 0 と表示されることがあります。再度ノードをクリックすると、div1 に画像が表示されます。散発的です。シングルクリックで画像が表示されることもあれば、ノードをダブルクリックする必要があることもあります。この問題に取り組む方法を教えてください。

4

1 に答える 1

0

ブラウザに読み込まれる前に画像の幅を取得することはできません。次のようにしてみてください。

}).bind("select_node.jstree", function (event, data) {
    var myImg1 = new Image;
        myImg1.src = "img/"+node_id+"-teamA.png";
        myImg1.onload = function() {
            alert(myImg1.width);
            alert(myImg1.src);
        }

    $("#div1").html(myImg1).css("border","1px solid");
});
于 2012-07-20T13:29:53.400 に答える