Fancybox麻烦

时间:2009-09-20 21:06:18

标签: javascript jquery fancybox

我正在尝试实现一个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>

9 个答案:

答案 0 :(得分:3)

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

.fn指的是原型。

答案 1 :(得分:2)

你发现错误吗?有同样的问题。解决方案是我已经包含了两次javascript文件,而是我将jquery.js文件包括两次。

答案 2 :(得分:2)

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

答案 3 :(得分:1)

$( “A#内联”)fn.fancybox();应该是$(“一个#inline”)。fancybox();

答案 4 :(得分:1)

你必须确保在jquery之后加载fancybox,否则你会得到一个“fancybox不是函数”错误,你的其他javascript也会破坏:

BROKEN:

<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>

GOOD:

<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>

答案 5 :(得分: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/

答案 6 :(得分:0)

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

<script type="text/javascript" src="path-to-file/jquery.js"></script>

答案 7 :(得分:0)

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

答案 8 :(得分:0)

$("a#inline").fn.fancybox();  
  1. 使用最新的jquery&amp;的fancybox
  2. $( “A#内联”)的fancybox(); - &GT;这是正确的

  3. 以下是示例:http://softm.org.ua/google-map-jquery-plugins/