从ajax结果中的链接打开colorbox模式窗口时出现问题

从ajax结果中的链接打开colorbox模式窗口时出现问题,ajax,dom,colorbox,Ajax,Dom,Colorbox,我构建了一个AJAX成员搜索,每次更新搜索过滤器时都会更新结果。它工作得很好,但是我需要能够从结果中弹出一个colorbox模式窗口,但是我无法 我想我可以通过jQuery来更新dom,但我不确定该使用什么 在不提供所有特定代码的情况下,我在主文件中构建搜索过滤器和脚本,将结果发布到secondary search.php文件,该文件根据发布到它的选项执行查询,并将所有结果收集到一个数组中,然后在ajax div的父页面上弹出它们。给出的每个结果都应该有一个链接,该链接将打开一个新的模式窗口,将

我构建了一个AJAX成员搜索,每次更新搜索过滤器时都会更新结果。它工作得很好,但是我需要能够从结果中弹出一个colorbox模式窗口,但是我无法

我想我可以通过jQuery来更新dom,但我不确定该使用什么

在不提供所有特定代码的情况下,我在主文件中构建搜索过滤器和脚本,将结果发布到secondary search.php文件,该文件根据发布到它的选项执行查询,并将所有结果收集到一个数组中,然后在ajax div的父页面上弹出它们。给出的每个结果都应该有一个链接,该链接将打开一个新的模式窗口,将此人添加为好友

下面是来自主父页面的一些ajax脚本:

<script language="javascript" type="text/javascript">
<!-- 
//Browser Support Code
function ajaxFunction( sel )
{

var ajaxRequest;  // The variable that makes Ajax possible!

try{
    // Opera 8.0+, Firefox, Safari
    ajaxRequest = new XMLHttpRequest();
} catch (e){
    // Internet Explorer Browsers
    try{
        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try{
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e){
            // Something went wrong
            alert("Your browser broke!");
            return false;
        }
    }
}
// Create a function that will receive data sent from the server
ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){
        var ajaxDisplay = document.getElementById('ajaxDiv');
        ajaxDisplay.innerHTML = ajaxRequest.responseText;
    }
}

if (document.getElementById('ac18').checked) {
var sex = document.getElementById('ac18').value; }
if (document.getElementById('ac19').checked) {
var sex = document.getElementById('ac19').value; }
if (document.getElementById('ac20').checked) {
var sex = document.getElementById('ac20').value; }

var cb_activities = document.getElementById('ac22').value;

var cb_interests = document.getElementById('ac24').value;

var cb_music = document.getElementById('ac26').value;

var cb_books = document.getElementById('ac28').value;

var cb_movies = document.getElementById('ac30').value;

var cb_tv = document.getElementById('ac32').value;

var age = document.getElementById('age').value;
var minage = document.getElementById('minage').value;
var maxrec = document.getElementById('maxrec').value;
var minrec = document.getElementById('minrec').value;
var vcountry = document.getElementById('country').value;
var vmilesfrom = document.getElementById('milesfrom').value;
var vstate = document.getElementById('state').value;
var vcity = document.getElementById('city').value;
var queryString = "?sex=" + sex + "&age=" + age + "&minage=" + minage + "&maxrec=" + maxrec + "&minrec=" + minrec + "&vcountry=" + vcountry + "&vmilesfrom=" + vmilesfrom + "&vstate=" + vstate + "&vcity=" + vcity + "&cb_activities=" + cb_activities + "&cb_interests=" + cb_interests + "&cb_music=" + cb_music + "&cb_books=" + cb_books + "&cb_movies=" + cb_movies + "&cb_tv=" + cb_tv;
ajaxRequest.open("GET", "/components/com_cbajaxsearch/search.php" + queryString, true);
ajaxRequest.send(null); 
}
//-->
</script>

下面是search.php页面中构建结果的一些代码:

echo '<tr><td class="resultcell">';
$display_string .= "<div class='memberresults' style='$spanstyle;'>      <center>$photo<br /><span class='memsearchusername'>$username</span><br /><span class='memsearchaddf'><a href='index.php?option=com_comprofiler&Itemid=2&act=connections&task=addConnection&connectionid=$id'></a></span>$afcolorbox<!-- $prolink --></center></div>";
echo '</tr></td>';
}

if ($num_rows == 0) {
echo '<div class="resultnum"><img class="cbasnoresults" src="components/com_cbajaxsearch/images/nomatches.png" alt="No Matches" title="No Matches" /></div>';
}
else {
echo '';
}
echo $display_string;
$display_string .= "</table>";
echo';
$display_string.=“$photo
$username
$afcolorbox”; 回声'; } 如果($num_rows==0){ 回声'; } 否则{ 回声'; } echo$display_字符串; $display_字符串=“”;

如果需要的话,我可以发布这两个文件的完整代码,但我想这至少可以让你了解我是如何在不占用大量空间的情况下构建它的。关于如何从结果中弹出颜色框的想法?

请告诉我们颜色框在代码中的位置

不知道,我仍然认为我知道你的问题。。 这样想你的问题: -最初在页面加载时,DOM已准备就绪,colorbox已初始化,因为选择器AJAX使用colorbox选择器列表中的某个DOM元素调用页面的新部分,但没有注意到,因为它是在javascript读取选择器后加载到页面中的

现在试试这个,因为它可以为所有现有的和新的“a[rel='lightbox']”观看“body#main”:


通过这种方式,不要等待插件监视事件,而是使用.delegate()监视事件,并动态执行colorbox。

请告诉我们colorbox在代码中的位置

不知道,我仍然认为我知道你的问题。。 这样想你的问题: -最初在页面加载时,DOM已准备就绪,colorbox已初始化,因为选择器AJAX使用colorbox选择器列表中的某个DOM元素调用页面的新部分,但没有注意到,因为它是在javascript读取选择器后加载到页面中的

现在试试这个,因为它可以为所有现有的和新的“a[rel='lightbox']”观看“body#main”:


通过这种方式,不要等待插件监视事件,而是使用.delegate()监视事件,并动态执行colorbox。

您是否在寻找带有“colorbox”一词的随机问题,并不加区分地复制/粘贴此代码?我不确定这是否有帮助。您是否在寻找带有“colorbox”字样的随机问题,并不加区别地复制/粘贴此代码?我不确定这是否有用。
$("body #main").delegate("a[rel='lightbox']", "click", function (event) {
                    event.preventDefault();
                    $.colorbox({href: $(this).attr("href"),
                            transition: "fade",
                            innerHeight: '515px',
                            innerWidth: '579px',
                            overlayClose: true,
                            iframe: true,
                            opacity: 0.3});});