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 回答