0

まず、私は Ajax を扱うのは初めてだと言っておきましょう。ajax を介してコンテンツを読み込もうとしており、ユーザーがリンクをクリックしたときに開始されるカラーボックス ポップアップに表示されます。これは私がこれまでに持っているものですが、Colorbox を開くことさえできません。この種のことを機能させるための洞察を持っている人はいますか? ありがとう!

$(document).ready(function(){
$(".show-overlay-link").click(function() {
  // get facet name from value of @id
  var id = $(this).attr("id");
  var facetName = id.replace(/^show-overlay-link-/, "");
  $.colorbox({href:"/ajax.xqy?action=facet&name=" + facetName});
  });
});
4

1 に答える 1

1

まず、これはajaxではありません...

次に、ajax がなくても、問題はカラーボックスの設定にあります。これは、URL に iframe などの場所を与えずに URL をカラーボックスに渡しているためです。まず、従来の投稿のクエリ URL を作成するコンストラクターを記述し、次にカラーボックス プロパティを拡張して、以下のようにカラーボックス iframe プロパティを含める必要があります。

$(document).ready(function(){
    $(".show-overlay-link").click(function() {

        // get facet name from value of @id
        var id = $(this).attr("id");

        // modify the returned id to remove the unwanted part of the id
        // for use in the query constructor
        var facetName = id.replace(/^show-overlay-link-/, "");

        // build a query constructor for your query URL
        var facetQuery = '/ajax.xqy?action=facet&name=' + facetName;

        // Configure colorbox with the iframe property set to true to give your
        // query response a target for the returned query result page.
        $.colorbox({
            iframe: true,
            href: facetQuery
        });
    });
});

サーバー側のスクリプトと、それに送信された投稿データを処理する方法、および処理が ajax 応答で送り返す戻りデータのタイプを知ることなく、ajax でこれを行う方法を示すことはできません。 (つまり、json、xml、html、テキストなど)。ただし、提供されるコードは、クライアント側とサーバー側の両方の既存のコードで希望することを達成する必要があります。

また、facetQuery の絶対 URL ではなく相対 URL を使用していることに注意することも重要です。この URL は、colorbox.js が配置されている場所に対して相対的になります。それ自身の場所以外のパスへの参照。コンストラクターには絶対 URL を使用することをお勧めします。これは、colorbox.js がサーバーに保存されている場所に関連しないためです。

それが役立つことを願っています。

于 2013-09-06T22:47:35.990 に答える