0

画像付きのタブがいくつかあります。アイデアは、次のように、クリックされたタブからのみ画像を表示することです。

$("#tabs").tabs({ show: function(event, ui) {
$('img.lazy', ui.panel).each(function(){ var imageSrc = $(this).attr("data-original-src"); $(this).attr("src", imageSrc); }); } });

ただし、一部のタブには750近くの画像があります。新しいタブがクリックされた場合、古いタブからのダウンロード画像を停止するにはどうすればよいですか?私はそれがこのようなものであるべきだと思います:

$("#tabs").tabs({
 show: function(event, ui) {
     if (oldui != null) {
         $('img.lazy', oldui.panel).each(function() { 
             $(this).attr("src", "");
         });
     }
     oldui = ui;
     $('img.lazy', ui.panel).each(function() {
         var imageSrc = $(this).attr("data-original-src");
         $(this).attr("src", imageSrc);
     });
 }

});

しかし、どうすれば最後にクリックされたタブを取得できますか?

4

2 に答える 2

1

ui.indexは現在のものであり、これをshowメソッドの変数に格納します。

var prevTab = 0;
$("#tabs").tabs({
 show: function(event, ui) {
     if(prevTab != ui.index) {
       //do it here....
     }
     prevTab = ui.index; 
    }
});
于 2013-01-10T18:43:57.470 に答える
0

古いパネルにアクセスできるようですui.oldPanel
$("#tabs").tabs({ select: function (event, ui) { $('img.lazy', ui.oldPanel).each(function () { $(this).attr("src", "images/card-text-bg.png"); }); $('img.lazy', ui.panel).each(function () { var imageSrc = $(this).attr("data-original"); $(this).attr("src", imageSrc); }); } });

于 2013-01-11T11:09:03.893 に答える