0

基本的に、クリックするとカラーボックスが表示される一連のコンテンツがあります。

echo '<div id=scrollimgforplaces>';
while ($row = mysql_fetch_array($result)) {
echo "<a class='ajax' href='image_color_box.php?id=".$row['id']."' title='Utourpia'></a>";
echo '<a class="ajax" href="login_for_color_box.php" title="Login"></a>';
}
echo '</div>';

上記の静的コンテンツの場合、次のコードを使用して colorbox を呼び出します。

$(".ajax").colorbox();

次に、これに似た動的コンテンツをいくつか生成します。カラーボックスを機能させるために、以下のコードを ajax に追加します。

$.ajax({
                    type: "POST",
                    url: "data.php",
                    data:data,
                    success: function(res) {
        var $html = $(res);
            $html.find('a.ajaxdynamic').colorbox();
            $('#scrollimgforplaces').append($html);
                    }
                });

私の動的コンテンツは次のとおりです。

while ($row = mysql_fetch_array($result)) {
echo "<a class='ajaxdynamic' href='image_color_box.php?id=".$row['id']."' title='Utourpia'></a>";
echo '<a class="ajaxdynamic" href="login_for_color_box.php" title="Login"></a>';
}

ただし、上記のコードを実行すると、動的コンテンツが表示されるように下にスクロールするなど、何らかのアクションを実行します。カラーボックスをクリックすると、1 回ではなく 2 回表示されます。何が起こったのですか?

デモページ: http://utourpia.me/php/dreamtrip.php

4

1 に答える 1

0

問題は、カラーボックスをajaxクラス$(".ajax").colorbox();のすべての要素に適用することだと思います。

次のような一意のIDを使用してみてください$("#element1").colorbox();

注:ソリューションをテストしていません

于 2013-07-22T05:20:18.590 に答える