0

我有 3 个名为的 PHP 文件,

  1. 索引页
  2. 图书
  3. 用户

索引页

<link href="colorbox.css" type="text/css" rel="stylesheet" media="all" />
<script type="text/javascript" src="jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="jquery.colorbox.js"></script>
<script type="text/javascript">
function bookRetr(str)
{
    if (str=="") {
        document.getElementById("more-info").innerHTML="";
        return;
    }

    // code for IE7+, Firefox, Chrome, Opera, Safari
    if (window.XMLHttpRequest) {
        xmlhttp=new XMLHttpRequest();
    } else {
        // code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("more-info").innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET","showbook.php?id="+str,true);
    xmlhttp.send();
}
</script>  
<script>
$(document).ready(function() {
    //Examples of how to assign the ColorBox event to elements
    $(".popup").colorbox({iframe:true, innerWidth:750, innerHeight:520});
});
</script>

<div id='$bookid' onClick="bookRetr(this.id)></div>
<div id='more-info'></div>

书展.php

$bookid = $_GET['id'];
$query  = mysql_query("SELECT * FROM bookdatabase WHERE ID='{$bookid}'");
$fetch  = mysql_fetch_array($query);
$user   = $fetch['userID'];

echo "<a href='showuser?id=$user' class='popup'>My name is X</a>";

当我单击 div 时,书显示回声部分显示在我的索引页面中,但是当单击我的名字是 X 时,它会打开一个新页面,但它实际上应该打开一个弹出窗口。我得到了名为 colorbox 插件的弹出窗口。

我无法弄清楚弹出窗口永远不会打开的我到底哪里出错了。

4

3 回答 3

2

代替:

$(".popup").colorbox({iframe:true, innerWidth:750, innerHeight:520});

尝试:

$('.popup').live('click', function() {
  $.colorbox({href:$(this).attr('href'), open:true, iframe:true, innerWidth:750, innerHeight:520});
  return false;
});

或者如果它不起作用:

$("body").on("click", ".popup", function() {
  $.fn.colorbox({href:$(this).attr('href'), open:true, iframe:true, innerWidth:750, innerHeight:520});
  return false;
});

希望它有一点帮助

于 2012-11-10T03:29:19.923 回答
1

您的问题是您正在动态生成链接,您必须使用 jquery live 才能使其工作。这是代码

  $(function(){
                //Examples of how to assign the ColorBox event to elements
                $(".popup").live("click",function(){
                    $.colorbox({iframe:true, innerWidth:750, innerHeight:520});
                    return false;
                });

            });

丁斯

于 2012-11-10T03:35:54.100 回答
0

因为您需要劫持单击 href 链接的自然执行...您需要添加 return false ,这实际上会告诉浏览器不要将您的 href 视为链接

如果您像这样更改弹出功能,它应该可以工作,当然在 href 选择后通过逗号分隔读取您的颜色框选择,如下所示

 $('.popup').click(function(){
   $.colorbox({href:$(this).attr('href'), iframe:true, innerWidth:750, innerHeight:520});
   return false;
  });

添加了您的选项和代码清理

于 2012-11-10T03:30:58.907 回答