2011-10-28 150 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」放在前面。 對我而言, 祝你好運!

相關問題