jQuery不会运行

时间:2012-03-06 16:58:15

标签: jquery jquery-plugins

我正在尝试将fancybox和jqueryui的手风琴实现到我的网站中,我无法运行fancybox。我很确定我正在调用函数,但它不会运行!

这是我声明脚本的地方:

<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

任何帮助都会很棒!感谢...

1 个答案:

答案 0 :(得分: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的需求。


看到OP的页面后进行编辑:

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

页面上唯一的错误。您应该已经在Firebug或Safari或Chrome中的开发人员工具中看到了这一点。

  

TypeError:表达式'$(document).ready'[undefined]的结果不是   一个功能。

这意味着jQuery未正确加载。我怀疑prototype.js与jQuery冲突。

按照我之前的建议删除prototype,看它是否开始有效。

然后按照here的说明解释如何将jQuery与其他库prototype一起使用。请注意,脚本加载顺序很重要......

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