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();  
});

但是,我不断收到此错误(通过萤火虫):

$("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 文件,而不是包含两次 jquery.js 文件。

于 2009-11-04T21:46:02.890 回答
2

我也遇到了这个问题,发现我已经包含了 jquery.js 两次。删除第二个引用修复了我从 fancybox 调用中得到的错误

于 2009-12-01T00:29:44.067 回答
1

$("a#inline").fn.fancybox(); 应该是 $("a#inline").fancybox();

于 2009-09-20T21:16:07.973 回答
1

我在 jsfiddle 中复制了您的 HTML 和 JS 片段。

  • 当我降级到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 回答
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 回答
0

我想你忘了也包括 jquery 本身。Fancybox 依赖于 jquery。

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

正如 Ben 所说,确保 jQuery 不会被意外包含两次。

于 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 回答