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>';
}

但是,当我运行上述代码时,我会执行一些操作,即向下滚动以显示动态内容。当我单击颜色框时,它将显示两次,而不是一次。知道发生了什么吗?

演示页面:http ://utourpia.me/php/dreamtrip.php

4

1 回答 1

0

我认为问题在于$(".ajax").colorbox();将颜色框应用于具有ajax类的所有元素。

您应该尝试使用唯一的 id,例如$("#element1").colorbox();

注意:我没有测试我的解决方案

于 2013-07-22T05:20:18.590 回答