2011-10-28 12 views
2

Я получаю следующую ошибку при попытке использовать плагин для JQuery.Uncaught TypeError: Object [object Object] не имеет метода '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> 

EDIT: Похоже, мой .htaccess немного путается с вещами.

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

Что следует делать только с URL-адреса, которые являются числами и отправки их в show.php, что файл я отправил выше.

Когда я нахожусь в моих файлах css или javascript в своем браузере, вместо этого я отправляюсь на страницу show.php.

EDIT 2: Да, это был htaccess.

Вот новая версия, и теперь все отлично работает.

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

Является ли что-нибудь вашим выходом PHP, приводящим к тому, что ваш HTML становится недействительным? –

+0

Я только заметил, что когда я пытаюсь получить доступ к css или javascript-файлу, мой .htaccess вмешивается. Я отредактирую оригинальный пост с этой информацией. –

ответ

0

Похоже, что у вас есть неправильный src из include javascript. Есть ли у includes dir прямо под DocumentRoot?

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

Edit:

Для вашего HTAccess, то лучше добавить RewriteCond %{REQUEST_FILENAME} !-f, чтобы избежать любого существующего файла для перенаправления.

1

Попробуйте изменить порядок js-файлов. размещайте блок кода javascript в теле и «fancybox-1.3.4.pack.js» раньше. для меня работает, удачи!

Смежные вопросы