0

以下のように、html にいくつかのイメージ タグと div があります。

私の要件は、各画像の高さ*幅を計算し、高さ*幅が<5000の場合は次のことを行うことです。1) 対応する div を削除します 2) 対応する画像のクラス 'captify' を削除します

このために、他の方法を使用してIEとFirefoxで作業できたので、Google Chromeを処理するために以下のスクリプトを試しました。

$('img[class = "captify"]').each(function(){

var $that = $(this),
picRealWidth = 0,
picRealHeight = 0,
imgSize = 0,
dvHiResCaption = null,
src = $that.attr( 'src' ),
rel = $that.attr( 'rel' );

// creating a clone in memory
$('<img/>').attr('src', src)
.load(function(){
picRealWidth = parseInt( this.width );
picRealHeight = parseInt( this.height );
}, function(){
// called once the load is complete
imgSize = picRealWidth * picRealHeight;

if( imgSize < 5000 ){
dvHiResCaption = '#' + rel;
$(dvHiResCaption).remove();
$that.removeClass( 'captify' );
}
});
});

誰でもこれについて私を助けてくれませんか。よろしくお願いします

4

3 に答える 3

1

代わりにこれを試してください:

$('img.captify').each(function(i,img){
    img.onload = function() {
        if ((this.width * this.height) < 5000) {
            $('#' + $(this).attr('rel')).remove();
            $(this).removeClass('captify');
        }
    }
});​
于 2012-10-09T12:18:07.870 に答える
0

そのようなメソッドjsfiddleはありません。この読み込み関数内は jQuery オブジェクトではなく、JavaScript HTMLElement です。使用する:

.....
picRealWidth = $(this).width( ); // return integer value
picRealHeight =  $(this)..height( );  // return integer value
.....
于 2012-10-09T12:08:43.267 に答える
0

$(this).width、$(this).height を使用

$('<img/>').attr('src', src)
.load(function(){
picRealWidth =$(this).width();
picRealHeight = $(this).height();
.......
于 2012-10-09T12:13:33.650 に答える