Domanda

Sto cercando di implementare un fancybox. http://fancybox.net/howto

Voglio chiamare questa funzione su un elemento. file di JS completa. http://fancybox.net/js/fancybox/jquery.fancybox- 1.2.1.js

$.fn.fancybox = function(settings) {

Ho fatto questo:

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

Tuttavia, continuo a ricevere questo errore (tramite Firebug):

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

Che cosa significa questo? Sto avendo sostanzialmente un'istanza problemi.

Si prega di aiutare.

Modifica

Il file 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>
È stato utile?

Soluzione

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

.fn si riferisce al prototipo.

Altri suggerimenti

Di trovare l'errore? Aveva lo stesso problema. Soluzione era che avevo incluso due volte un file JavaScript, piuttosto ho incluso file due volte i jquery.js.

Sono stato anche avere questo problema e ha scoperto che avevo incluso jquery.js due volte. Rimozione del secondo riferimento fissato l'errore mi è stato sempre dalla chiamata fancybox

.

$ ( "# un inline") fn.fancybox (); dovrebbe essere $ ( "# un inline") fancybox ().;

Si deve fare in modo di caricare fancybox DOPO jquery, altrimenti si ottiene un "fancybox non è una funzione" di errore e l'altra javascript si romperà così:

ROTTO:

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

BUONA:

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

Ho copiato un frammento di codice HTML e JS all'interno jsfiddle.

  • Quando ho declassato a jquery 1.3.2 , [vedi barra laterale a sinistra sotto quadro in JSFiddle esempio] il codice non funzionerà.
  • Quando aggiorno a 1.4.4 o versioni successive, ha funzionato.

Soluzione

  • Prova aggiornare il jQuery per 1.4.4 o versioni successive e ripetere il test.
  • Inoltre ho notato che si sta includendo un esterno header.php , in modo da assicurarsi che non vi siano altri script jQuery essere inclusi in questo file o il vostro js codici si romperà.

Si veda questo link per l'esempio di lavoro del proprio codice utilizzando la versione jquery 1.4.4 : http://jsfiddle.net/Ca6N5/

Credo che si è dimenticato di includere anche jquery stessa. Fancybox dipende jquery.

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

Come ha detto Ben, assicurarsi jQuery non viene incluso due volte per errore.

$("a#inline").fn.fancybox();  
  1. utilizzare più recente jQuery & fancybox
  2. $ ( "# un inline") fancybox ().; -> questo è corretto

  3. Ecco esempi: http://softm.org.ua/google-map -jquery-plugins /
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top