0

この質問を数回しましたが、どの提案も機能していないようです。

jstree プラグインを使用してツリーを構築しています。node_id に基づいて、いくつかの div に画像をロードしようとしています。それはちょっと動作しますが、散発的な画像表示の問題があります。ダブルクリックが必要な場合もあれば、シングルクリックで画像が表示される場合もあります。

私はこれを試しました:

  img1 = new Image;
  img1.src="teamA.png";

  img2 = new Image;
  img2.src="teamB.png";

      img1.onload = function()
 { 

$("#div1").html(img1;
    }  

などですが、これは機能していません。散発的に画像がdivに表示されるようになりました。

私は次のようにjqueryプラグインimgpreloadを見始めました:

$.imgpreload(['img1','img2', 'img3','img4','img5','img6'], 
{     

    each: function()     { 

    $(this).data('loaded') 

    $("#div1").html(img1);
}
});

これも機能していないようですが、アイデアやポイントはありますか?

私はこれをしました:

$(function () {
var myImage1 = new Image();
$(img1)
    .load(function () {
    });


      .attr('src', 'teamA.png');
});

構文エラーが発生しています。これでよろしいでしょうか?

* 更新 *コードを次のように変更しました。

$(function () { 
    var myImage1 = new Image(); 
    $(myImage1).load(function () 
    {     
    })         
    .attr('src', 'teamA.png');
    alert(myImage1.width);  

    $('#div1').html("myImage1").css({"border": "0", "background": "white"});



}

ロード機能の直後に、次のことを行っています。

alert(myImage.width) を呼び出して画像のサイズを確認すると、0 に戻っているため、これは機能していないようです。しっかりとイメージがあります。

更新 v2

  $(function () { 
    var myImage1 = new Image(); 
    $(myImage1).load(function () 
    {     
    alert(myImage1.width);
    $('#div1').html("myImage1").css({"border": "0", "background": "white"});

    })         
    .attr('src', 'teamA.png');
    });

わかりました、このコードは画像があると仮定して機能します。しかし、私がやりたいのは、画像がそこにない場合、その div を非表示にすることです。私はこのコードを持っていますが、ロード イベントでは機能しません。空の div を非表示にするにはどうすればよいですか?

       $(function ()
           { 
            var myImage1 = new Image(); 
             $(myImage1).load(function () 
                  {  
                       var image1Check = myImage1.width;
               if (image1Check == 0  || image1Check < 30) 
                             {
                         $('#div').html("").css("border", "");

                     }
               else 
                     {

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


                          }

    })         
                .attr('src', teamA.png);

    }); 
4

2 に答える 2

1

srcを設定する前にloadイベントをバインドし、欠落している画像を処理するには、.error()

$(function () { 
    var myImage1 = new Image(); 
    $(myImage1).load(function () {  
        $("#div1").html(myImage1).css("border","1px solid");
    }).attr('src', "teamA.png").error(function(){
        $('#div1').html("").css("border", "");
    });
}); 
于 2012-07-24T17:54:17.467 に答える
0

次の場合は$(this).data('loaded')を使用する必要があります。

each: function() {
  if ($(this).data('loaded')) {
    // do something
  }
},
于 2012-07-20T18:58:57.017 に答える