1

私はfancyboxを実装しようとしています。http://fancybox.net/howto

この関数を要素で呼び出したい。完全なJSファイル。http://fancybox.net/js/fancybox/jquery.fancybox-1.2.1.js

$.fn.fancybox = function(settings) {

私はこれをしました:

$(document).ready(function() { 
    $("a#inline").fn.fancybox();  
});

ただし、このエラーが発生し続けます(firebugを介して):

$("a#inline").fn is undefined
[Break on this error] $("a#inline").fn.fancybox();

これは何を意味するのでしょうか?私は基本的にインスタンス化の問題を抱えています。

助けてください。

編集

HTMLファイル:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Technologies</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="fancy/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="fancy/jquery.fancybox-1.2.1.js"></script> 
<link rel="stylesheet" href="fancy/fancybox.css" type="text/css" media="screen" />
<script type="text/javascript">
$(document).ready(function() { 
    $("a#inline").fancybox();  
}); 
</script>
</head>
<body>
<?php
include_once ("header.php");
?>
<div id="channel_calc">
How many Channels do I need?
<span id="yellow"><a id="inline" href="#ddm">Channel Calculator</a></span>
</div>
4

9 に答える 9

3
$('#inline').fancybox();

.fnはプロトタイプを指します。

于 2009-09-20T21:17:27.003 に答える
2

エラーを見つけましたか?同じ問題がありました。解決策は、javascriptファイルを2回インクルードしたのではなく、jquery.jsファイルを2回インクルードしたことです。

于 2009-11-04T21:46:02.890 に答える
2

私もこの問題を抱えていて、jquery.jsを2回インクルードしたことがわかりました。2番目の参照を削除すると、fancyboxの呼び出しから取得していたエラーが修正されました

于 2009-12-01T00:29:44.067 に答える
1

$( "a#inline")。fn.fancybox(); $( "a#inline")。fancybox();である必要があります。

于 2009-09-20T21:16:07.973 に答える
1

jqueryの後にfancyboxをロードする必要があります。そうしないと、「fancyboxは関数ではありません」というエラーが発生し、他のJavaScriptも壊れます。

壊れた:

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

良い:

<script type="text/javascript" src="/js/jquery-1.6.1.js"></script>
<script type="text/javascript" src="/js/fancybox/jquery.fancybox-1.3.4.js"></script>
于 2011-08-05T10:08:59.957 に答える
1

HTMLとJSのフラグメントをjsfiddle内にコピーしました。

  • jquery 1.3.2にダウングレードすると、[ JSFiddleの例のフレームワークの下にある左側のサイドバーを参照]コードが機能しなくなります。
  • 1.4.4以降のバージョンにアップグレードすると、機能しました。

解決

  • jqueryを1.4.4以降のバージョンにアップグレードして、もう一度テストしてみてください。
  • また、外部のheader.phpが含まれていることに気付いたので、このファイルに他のjqueryスクリプトが含まれていないことを確認してください。含まれていないと、jsコードが壊れます。

jqueryバージョン1.4.4を使用した独自のコードの実際の例については、次のリンクを参照してください:http : //jsfiddle.net/Ca6N5/

于 2012-06-17T16:38:26.373 に答える
0

jquery自体も含めるのを忘れたと思います。Fancyboxはjqueryに依存しています。

<script type="text/javascript" src="path-to-file/jquery.js"></script>
于 2009-09-20T21:15:57.580 に答える
0

ベンが言ったように、jQueryが誤って2回含まれていないことを確認してください。

于 2010-06-15T06:25:38.130 に答える
0
$("a#inline").fn.fancybox();  
  1. 最新のjqueryとfancyboxを使用する
  2. $( "a#inline")。fancybox(); ->これは正しいです

  3. 次に例を示します:http ://softm.org.ua/google-map-jquery-plugins/
于 2011-07-09T11:44:24.277 に答える