2011-10-28 4 views
2

JQuery 용 플러그인을 사용하려고 할 때 다음 오류가 발생합니다.잡히지 않은 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 또는 자바 스크립트 파일을 방문하면 show.php 페이지로 전송됩니다.

편집 2 : 예, 그것이 htaccess였습니다.

여기에 새 버전이 있으며 모든 것이 잘되었습니다.

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

귀하의 PHP 출력이 귀하의 HTML을 무효화시키는 원인입니까? –

+0

방금 ​​CSS 또는 자바 스크립트 파일에 액세스하려고 할 때 .htaccess가 간섭하고있는 것으로 나타났습니다. 그 정보로 원래 게시물을 수정하겠습니다. –

답변

0

자바 스크립트를 포함하는 잘못된 src가있는 것 같습니다. includes DocumentRoot 바로 아래에 있습니까?

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

편집 : 당신의 htaccess로 들어

, 리디렉션 기존 파일을 피하기 위해 RewriteCond %{REQUEST_FILENAME} !-f를 추가하는 것이 좋습니다.

1

js 파일의 순서를 변경하십시오. 본문에 자바 스크립트 코드의 블록을 배치하고 전에 "fancybox-1.3.4.pack.js"를 배치하십시오. 나를위한 작품, 행운을 빕니다!

관련 문제