2012-03-06 3 views
0

Я пытаюсь внедрить аккордеон fancybox и jqueryui на свой сайт, я НЕ могу получить fancybox для запуска. Я вполне уверен, что правильно вызываю функцию, но она просто НЕ запускается!jQuery не будет запущен

Вот где я объявляю сценарии:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 
<script type="text/javascript" src="scripts/fancybox/jquery.fancybox-1.3.4.pack.js"></script> 

CSS

<link href="scripts/fancybox/jquery.fancybox-1.3.4.css" rel="stylesheet" type="text/css" /> 
<link href="scripts/fancybox/style.css" rel="stylesheet" type="text/css" /> 

Функция:

<script type="text/javascript"> 
//Accordion Code 
var ContentHeight = 480; 
var TimeToSlide = 250.0; 

var openAccordion = ''; 

function runScripts() 
{ 
runAccordion(1); 
logosize(); 
fancybox(); 
} 
function fancybox() 
{ 
    $(".fbox").fancybox({ 
      height:390, 
      width:900 
      }) 
} 

function runAccordion(index) 
{ 
    var nID = "Accordion" + index + "Content"; 
    if(openAccordion == nID) 
    nID = ''; 

    setTimeout("animate(" + new Date().getTime() + "," + TimeToSlide + ",'" 
     + openAccordion + "','" + nID + "')", 33); 

    openAccordion = nID; 
} 
//Logo Code 
function logosize() 
{ 
var logoID = document.getElementById('logo'); 
if (screen.width<=1152) 
{ 
    document.images["logo"].width = 175; 
    document.images["logo"].height = 175; 
    document.getElementById('AccordionWrapper').style.marginTop = '0px';  
} 
} 
//End 
</script> 

и вызов:

<a class="fbox" href="about.html">This goes to iframe</a> 

thepastebin для всего: http://pastebin.com/eSQM6aX1

Любая помощь будет замечательной! Спасибо ...

+0

Выполнена runScripts после того, как документ будет готов? –

+0

Charlie

+0

Вам не нужно 'onload', когда вы используете jQuery. Просто используйте функцию document.ready. См. Мой ответ ниже.(Вам также не нужен _any_ встроенный JavaScript, когда вы используете jQuery.) – Sparky

ответ

1

Вы пытаетесь запустить функцию fancybox внутри себя. Вы не можете определить новую функцию с тем же именем, что и функция fancybox().

function runScripts() { 
    runAccordion(1); 
    logosize(); 
    fancybox(); // <--- the plugin is already using this function name 
} 

function fancybox() { 
    $(".fbox").fancybox({ 
      height:390, 
      width:900 
    }) 
} 

Так вы могли просто переименовать его ...

function runScripts() { 
    runAccordion(1); 
    logosize(); 
    Myfancybox(); 
} 

function Myfancybox() { 
    $(".fbox").fancybox({ 
      height:390, 
      width:900 
    }); 
} 

Но все, что вам действительно нужно сделать, это положить все это внутри document.ready функции ...

$(document).ready(function() { 

    runAccordion(1); 
    logosize(); 

    $(".fbox").fancybox({ 
      height:390, 
      width:900 
    }); 

}); 

Все остальное, что вы хотите запустить при загрузке документа, также можно разместить внутри. Это устраняет необходимость в сценарии инициализации runScripts(). И jQuery устраняет необходимость в body onload, а также во всех других встроенных JavaScript.


Edit после просмотра страницы OP еще:

http://www.semaphoredesign.com/web-devel/joker/test2.html

Единственная ошибка на этой странице. Вы должны были увидеть это в Firebug или в инструментах разработчика в Safari или Chrome.

TypeError: Result of expression '$(document).ready' [undefined] is not a function.

Это означает, что jQuery неправильно загружен. Я подозреваю, что prototype.js противоречит jQuery.

Удалить prototype, как я предложил раньше, чтобы узнать, начинает ли он работать.

Далее следуйте инструкциям here, которые объясняют, как использовать jQuery с другими библиотеками, такими как prototype. Обратите внимание, что порядок загрузки сценария важно ...

http://api.jquery.com/jQuery.noConflict/

+0

Я пробовал обе эти вещи, и оба провалились. – Charlie

+0

У вас есть какие-либо ошибки? Другой скрипт, который может работать? –

+0

У меня не было ошибок, я пытался запустить его через firebug, но я не лучший в использовании. Я действительно не понимаю, я могу загрузить его (обе версии), если вы захотите посмотреть? – Charlie

Смежные вопросы