クリック イベントが発生したときに手動で呼び出す Fancybox jQuery プラグインを使用しています。私が直面している問題は、矢印を使用して画像間を移動できるようにするために画像のグループを使用しているときです。この目的のために、グループ内のすべての画像は同じ「rel」属性を持ちます。私が書いた以下のコードではすべてがうまくいくようですが、問題は最初に読み込まれた画像にあります.2番目の画像をクリックしても-最初の画像はアレイを作成しました。
だから私の質問は - クリックしたアイテムが最初のアイテムになり、前のアイテムが配列の最後に移動するように配列を再配置するにはどうすればよいですか - 基本的にアイテムを移動します。
例は次のとおりです。
var thisArray = [ item-1, item-2, item-3 ];
var thisArray = [ item-2, item-3, item-1 ];
私のコードは次のとおりです(クリックされた要素のインデックスを返す「currentIndex」変数も既に持っています:
lightbox : function(obj) {
"use strict";
obj.live('click', function(e) {
e.preventDefault();
var thisObj = $(this);
var thisOptions = {
beforeLoad : function() {
$('body').css('overflow', 'hidden');
},
afterClose : function() {
$('body').css('overflow', 'auto');
},
scrolling : 'no',
fitToView : true,
margin : 0,
padding : 0,
closeBtn : false,
closeClick : true,
arrows : true,
helpers : {
title : {
type : 'inside'
},
overlay : {
speedIn : 0,
speedOut : 300,
opacity : 1,
css : {
cursor : 'pointer',
'background-color' : '#000'
},
closeClick: true
}
}
};
var thisAttrRel = thisObj.attr('rel');
if (thisAttrRel) {
var thisObjs = $('a[rel='+thisAttrRel+']');
if (thisObjs.length > 1) {
var currentIndex = thisObjs.index(thisObj);
var thisItems = [];
jQuery.each(thisObjs, function() {
var thisHref = $(this).attr('href');
var thisTitle = $(this).attr('title');
thisItems.push({ 'href' : thisHref, 'title' : thisTitle });
});
jQuery.fancybox.open(thisItems, thisOptions);
}
} else {
thisOptions.href = thisObj.attr('href'),
jQuery.fancybox(thisOptions);
}
});
}