2

シックボックスに関していくつか質問があります。ホームページにいくつかのシックボックスを異なる時間に表示する必要があるサイトを開発しています。シックボックスが表示されると、API 呼び出しがトリガーされ、シックボックスにフィードバックが表示されます。

Ajax 呼び出しの量を減らすために、thickboxes をインラインで表示することにしました。簡単そうに見えますが、いくつかの問題が発生します。1 つ目は、thickbox が表示されるときに、thickbox コンテンツを含む div が削除されることです。Thickbox は HTML をカスタム HTML に置き換えて、コンテンツを適切に表示します。これは問題ありませんが、AJAX 応答でシックボックス内の何かを更新したい場合に問題があり、コンテナ ID を選択してシックボックスにアクセスするように設定しています。それはもう利用できません。もちろん、応答に一意の識別子を指定することもできますが、それらにすべてのクラス「応答」を与え、DIV を含む外側に基づいてそれらを選択することを望んでいました。$("#login_lightbox > .response").html(ajax_response);これは理にかなっていますか?

私のもう1つの懸念は、thickboxを処理するためのより良い方法があるかもしれないということです. 読み込み時に API 呼び出しを行うシックボックス コンテンツを取得するために AJAX 呼び出しを行う必要がありますか? それは私には良い選択ではないように思えますが、以前の開発者がそのように設定していたので、意見を求めたいと思っていました.

4

1 に答える 1

0

開いている Ajax ThickBox で新しい Ajax コンテンツを開くには、Ajax ThickBox を起動するための適切な HTML (class="thickbox") がそのコードに含まれている必要があります (例については、デモを参照してください)。

http://jquery.com/demo/thickbox/#sectionf-1でデモを読んで確認してください。

HTH

編集:

Tony さん、上記は、Thickbox を開くのではなく、Thickbox 内の新しいコンテンツ リンクに適用されます。上記のデモ ページに移動するには、最初のコンテンツに次のリンクが含まれています。

<p>What is jquery? <a href="newTBcontent.html?height=200&amp;width=300" class="thickbox">Answer</a></p>

コンテンツがシックボックスにロードされるようにします。

あなたの質問に答えるために、私が次のことをすると、かなりうまくいきます。多分私はあなたの質問を誤解しましたか?

最初のページのどこかに:

<p><a href="atb.php?height=200&amp;width=300" class="thickbox">Open AJAX Thickbox</a></p>

シックボックスの内容 (ファイル 'atb.php'):

<script language="javascript" type="text/javascript">
jQuery(document).ready( function()
{
    jQuery.ajax(
    {
        type: "GET",
        url: "atbd.php",
        success: function(rsp)
        {
            jQuery( ".response" ).html(rsp);
        }
    });
});
</script>
<div id="container">
    <div class="response">RSP 1</div>
    <div class="response">RSP 2</div>
    <div class="response">RSP 3</div>
    <div class="response">RSP 4</div>
</div>

ファイル「atbd.php」:

<?php
echo date('Y-m-d H:i:s', time());
?>
于 2009-11-26T10:41:03.397 に答える