Jquery UI最后点击了标签

时间:2013-01-10 18:35:00

标签: jquery jquery-ui tabs lazy-loading jquery-ui-tabs

我有一些图片标签。我们的想法是仅显示点击标签中的图片,如下所示:

$("#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);
     });
 }

});

但是如何获得最后点击的标签?

2 个答案:

答案 0 :(得分:1)

ui.index是当前的一个,将它存储在show方法的变量中:

var prevTab = 0;
$("#tabs").tabs({
 show: function(event, ui) {
     if(prevTab != ui.index) {
       //do it here....
     }
     prevTab = ui.index; 
    }
});

答案 1 :(得分: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); }); } });