ユーザーが次と前をクリックできるように、矢印を有効にして fancybox を呼び出すリンクのグループがあります。各リンクは、iframe クラスと href='/editdata.aspx' で装飾されています。矢印を削除して現在のインデックスを渡すと、editdata.aspx 保存ボタンが最後のリンクに到達するまで「保存して次へ」と表示され、「保存して閉じる」と表示されます。
私が使用するeditdata.aspxから
var numLinks = $(".link-items", parent.document.body).children("a.iframe").size();
これにより、リンクの総数がわかります。保存ボタンのテキストを更新できるように、ユーザーに表示されている現在のリンクを知る必要があるだけです。
editdata.aspx のコードのサンプルを次に示します。
// change the save button to save and next if fancybox is loading multiple links
if (parent.$.fancybox) {
var links = $(".links", parent.document.body);
if (links && links.length > 0) {
var numlinks = $(links).children("a.popup").size();
var index = getParameterByName('index');
if (index == numlinks ) {
// this element is the last item to display so change the "save and next" to "save and close"
$("#btnSave").val("Save & Close");
$("#btnSave").click(function () {
parent.$.fancybox.close();
});
}
else {
$("#btnSave").val("Save & Next");
$("#btnSave").click(function () {
parent.$.fancybox.next();
});
}
}
}
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regexS = "[\\?&]" + name + "=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if (results == null)
return "";
else
return decodeURIComponent(results[1].replace(/\+/g, " "));
}
どうすればこれを達成できますか?