0

jQuery/CSS/data 属性を使用して背景を設定するのに問題があります。私はコードを適切にリファクタリングしておらず、おそらくより良い解決策を見つけるでしょうが、なぜこれが機能しないのかを知りたいです...説明するのは少し難しいです...以下を参照してください

$('.promoCarousel').find('.image').each(function(){
    $(this).css({
        'background-image': $(this).attr('data-mob-src'), // DOESNT SET BACKGROUND IMAGE 
        'width' : 288,
        'height' : 288
    })
    $(this).addClass("mobview");
});

$(this) で $(this) を使用しているからですか??

4

2 に答える 2

3

$(this)ローカル変数に設定して参照します。

$(this)複数の呼び出しを行う場合は、ローカル変数からの読み取りのパフォーマンスが向上するため、とにかくこれを行う必要があります。

さらに、私の推測ではurl()data-mob-srcプロパティ値に含まれていません。以下の例のように、これを連結することをお勧めします。

$('.promoCarousel').find('.image').each(function(){
    var $this = $(this);
    $this.css({
        'background-image': 'url(' + $this.attr('data-mob-src') + ')', 
        'width' : 288,
        'height' : 288
    })
    $this.addClass("mobview");
});
于 2013-06-11T14:42:47.187 に答える
0

を使用している場合は、 .data(key)HTML5 data-を使用します

交換

$(this).attr('data-mob-src')

$(this).data('mob-src')

編集:ライブの例を追加

jsFiddle コード

于 2013-06-11T14:45:21.137 に答える