Необычные проблемы - PullRequest
       23

Необычные проблемы

1 голос
/ 21 сентября 2009

Я пытаюсь реализовать 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();

Что это значит? У меня в основном проблемы с созданием экземпляров.

Пожалуйста, помогите.

EDIT

Файл 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 ]

3 голосов
/ 21 сентября 2009
$('#inline').fancybox();

.fn относится к прототипу.

2 голосов
/ 01 декабря 2009

У меня тоже была эта проблема, и я обнаружил, что дважды включил jquery.js. Удаление второй ссылки исправило ошибку, которую я получал от вызова fancybox

2 голосов
/ 05 ноября 2009

Di вы нашли ошибку? Была такая же проблема. Решение состояло в том, что я включил дважды файл javascript, скорее, я включил файл jquery.js дважды.

1 голос
/ 17 июня 2012

Я скопировал фрагмент вашего 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/

1 голос
/ 05 августа 2011

Вы должны убедиться, что загрузили fancybox ПОСЛЕ jquery, в противном случае вы получите сообщение об ошибке «fancybox is not function», и ваш другой 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>

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>
1 голос
/ 21 сентября 2009
.

$ ( "A # инлайн") fn.fancybox (); должно быть $ ("a # inline"). fancybox ();

0 голосов
/ 09 июля 2011
$("a#inline").fn.fancybox();  
  1. используйте новейшие jquery & fancybox
  2. $ ( "A # встроенный") FancyBox (). -> это правильно

  3. Вот примеры: http://softm.org.ua/google-map-jquery-plugins/
0 голосов
/ 15 июня 2010

Как сказал Бен, убедитесь, что jQuery не был включен дважды случайно.

0 голосов
/ 21 сентября 2009

Я думаю, вы забыли также включить сам jquery. Fancybox зависит от jquery.

<script type="text/javascript" src="path-to-file/jquery.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...