Question

Je suis en train de mettre en œuvre un fancybox. http://fancybox.net/howto

Je veux appeler cette fonction sur un élément. fichier complet JS. http://fancybox.net/js/fancybox/jquery.fancybox- 1.2.1.js

$.fn.fancybox = function(settings) {

Je l'ai fait:

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

Cependant, je continue à obtenir cette erreur (par Firebug):

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

Qu'est-ce que cela signifie? Je rencontre des problèmes essentiellement instanciation.

S'il vous plaît aider.

EDIT

Le fichier 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>
Était-ce utile?

La solution

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

.fn fait référence au prototype.

Autres conseils

Di vous trouvez l'erreur? Eu le même problème. La solution a été que j'avais inclus deux fois un fichier javascript, plutôt i inclus le jquery.js fichier deux fois.

Je suis aussi avoir ce problème et a trouvé que j'avais inclus deux fois jquery.js. Retrait de la deuxième référence fixe l'erreur que je recevais de l'appel fancybox

$ fn.fancybox () ( "une ligne de #"). devrait être $ ( "une ligne de #") fancybox ().

Vous devez vous assurer de charger fancybox APRÈS jquery, sinon vous obtiendrez une erreur « fancybox n'est pas une fonction » et votre autre javascript briserez ainsi:

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>

BON:

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

Je l'ai copié un fragment de votre code HTML et JS à l'intérieur jsFiddle.

  • Quand je rétrogradé à jquery 1.3.2 , [voir l'encadré à gauche sous cadre jsFiddle par exemple] votre code ne fonctionnera pas.
  • Lorsque je passe à 1.4.4 ou une version ultérieure, il a travaillé.

Solution

  • Essayez de mettre votre jquery 1.4.4 ou versions ultérieures et test.
  • Aussi je remarque que vous incluez un externe header.php , alors assurez-vous qu'il n'y a pas d'autres scripts jquery étant inclus dans ce fichier ou vos codes js cassera.

Voir ce lien pour l'exemple de travail de votre propre code en utilisant jquery Version 1.4.4 : http://jsfiddle.net/Ca6N5/

Je pense que vous avez oublié d'inclure également jquery lui-même. Fancybox dépend jquery.

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

Ben dit, assurez-vous que jQuery n'est pas inclus deux fois par accident.

$("a#inline").fn.fancybox();  
  1. utilisez le plus récent jquery & fancybox
  2. $ fancybox () ( "une ligne de #"). -> cela est correct

  3. Voici des exemples: http://softm.org.ua/google-map -jquery-plugins /
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top