jQuery $(document).ready()没有触发

时间:2010-10-20 04:01:25

标签: asp.net jquery sharepoint-2010 web-parts

使用Google托管代码中的jQuery 1.4.2。

当文档准备就绪时,以下javascript是否会触发所有3个document.ready函数?

第一个$(document).ready()函数,用于呈现标题,第二个用于触发“Foo”警报框,但不会触发新<script>块中的后续文件,

<script type="text/javascript">
    $(document).ready(function () {
        Cufon.replace('h1'); // Works without a selector engine
        Cufon.replace('h2'); // Works without a selector engine
        Cufon.replace('h3'); // Works without a selector engine
        Cufon.now();
    });
    $(document).ready(function () { alert("Number Foo"); });
</script>

// html tags

<script type="text/javascript">
    $(document).ready(function () { alert("Number One"); });
    $(document).ready(function () { alert("Number Two"); });
</script>

这些部分位于独立的Web部件中,托管在Sharepoint2010的同一页面上

3 个答案:

答案 0 :(得分:23)

我可以想到三个取证的东西,关闭:

  1. 尝试使用非谷歌托管 库。
  2. 评论出了Cufon 电话 - 我相信Cufon做了一些 疯狂的东西下载额外的 资源,是吗?那可能 干扰
  3. sub in 一个或多个$(window).load() 您的$(document).ready() 回调定义。他们有不同 射击标准 - $(window).load()等待 据说所有要加载的东西 - 但替代可能是 揭示。
  4. 当然,在这种情况下,console.log()alert()将成为您调试器中断点最好的朋友。

答案 1 :(得分:1)

你在第二个脚本标签

中缺少一个结束的大括号和括号

答案 2 :(得分:1)

您在最后一个$(文档).ready

的末尾缺少});

一旦你纠正了这个,它应该有用

修改 既然你现在说每个脚本标签都在一个单独的Web部件中,我相信问题本身不在脚本中。页面中的其他内容会弄乱您的代码。