0

ユーザーが次と前をクリックできるように、矢印を有効にして 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, " "));
    }

どうすればこれを達成できますか?

4

1 に答える 1

2

それはv2にとって簡単です-

jQuery(".fancybox").fancybox({
    beforeLoad : function() {
        this.href = this.href + '?index=' + this.index;
    }
});
于 2012-06-13T15:32:03.000 に答える