2011-10-28 96 views
2

我在尝试使用JQuery插件时遇到以下错误。Uncaught TypeError:Object [object Object] has no method'fancybox'

奇怪的是,当它在一个基本的HTML文件中时,它完美地工作(并且仍然),但是当我开始用PHP填充事物时,我得到这个错误。

 
`Uncaught TypeError: Object [object Object] has no method 'fancybox'` 

的错误发生在包括线...

$('#show-slider').fancybox(function() { 

这里是我的HTML。

<?php 
    require_once('includes/functions.php'); 

    $id = $_GET['id']; 
    connect(); 

    $q = "select * from urls where id = $id"; 
    $r = mysql_query($q); 

    if($r === FALSE) { 
     die(mysql_error()); 
    } else { 
     $arr = mysql_fetch_array($r); 
    } 

    mysql_close(); 
?> 
<html> 
<head> 
<title><?=$arr[2]?></title> 
<link rel="stylesheet" type="text/css" href="/includes/fancybox/jquery.fancybox-1.3.4.css" media="screen" /> 
<link rel="stylesheet" type="text/css" href="/includes/css/style.css" media="screen" /> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script> 
<script type="text/javascript" src="/includes/fancybox/jquery.fancybox-1.3.4.pack.js"></script> 
<script type="text/javascript"> 
    function go() { 
     $('#show-slider').fancybox(function() { 
      $('#slider').css('display', 'inline'); 
     }); 

     $('#show-slider').click(); 
    } 
</script> 
</head> 
<body> 
<iframe src="<?=$arr[1]?>" width="100%" height="100%" onload="go();"> 
    <p>Your browser does not support iframes.</p> 
</iframe> 
<a id="show-slider" href="#slider" style="display: none;">Inline</a> 
<div style="display: none;"> 
    <div id="slider"> 
     <?=$arr[3]?> 
    </div> 
</div> 
</body> 
</html> 

编辑:它看起来像我的.htaccess正在搞乱一点东西。

RewriteEngine On 
RewriteRule ([0-9]+) show.php?id=$1 

什么应该做的是只采取有数字的网址和发送它们show.php,这是我在上面张贴的文件。

当我在浏览器中访问我的css或javascript文件时,我发送到show.php页面。编辑2:是的,这是htaccess。

这是新版本,现在一切都很顺利。

RewriteEngine On 
RewriteRule ^([0-9]+)$ show.php?id=$1 
+0

什么是您的PHP输出导致您的HTML无效? –

+0

我刚刚注意到,当我尝试访问一个CSS或JavaScript文件时,我的.htaccess正在干扰。我将使用该信息编辑原始帖子。 –

回答

0

它看起来像你有错误的包括JavaScript的src。根据DocumentRoot,includes是否正确?

<script type="text/javascript" src="/includes/fancybox/jquery.fancybox-1.3.4.pack.js"></script> 

编辑:

为了您的htaccess,最好是添加RewriteCond %{REQUEST_FILENAME} !-f,以避免任何现有的文件重定向。

1

尝试更改js文件的顺序。 将javascript代码放在body中,并将“fancybox-1.3.4.pack.js”放在前面。 对我而言, 祝你好运!

相关问题