【问题标题】:Why does jQuery work on one page and not another?为什么 jQuery 在一个页面上工作而不在另一个页面上工作?
【发布时间】:2014-02-25 00:13:35
【问题描述】:

我在一个网站上使用了许多 jQuery 脚本,包括 Fancybox。一切正常,除了在带有表单的页面上。我以前从未见过与 jQuery 发生静态表单冲突。一开始我以为是jquery的路径,但是有同级的页面,一个可以,一个不行。

例如,在this page 上,如果您点击 ArtStart Our Newsletter Fancybox 工作正常,但如果您在 this page 上做同样的事情,相同的表单不会在 Fancybox 中打开,我得到以下错误:

Fancybox 不是函数

通常这告诉我指向 jquery.fancybox 的链接已损坏或存在冲突。我已将 $ 更改为 jQuery 以防止冲突,但它没有任何区别。此外,所有页面都从脚本链接的相同嵌入代码中提取。

Fancybox 的代码如下:

<script>
        jQuery(document).ready(function() {
            jQuery(".fancybox").fancybox({
            openEffect  : 'none',
            closeEffect : 'none',
            width       : 600,
            height      : 800
            });
        });
</script>

我希望能得到一些帮助来解决这个问题。

谢谢

【问题讨论】:

  • 如果我从控制台运行它对我来说很好
  • Fancybox 在另一个页面中对我来说也可以正常工作吗? IE等特定浏览器是否会出现此问题?
  • 在 chrome 中测试..在两个页面上对我来说都很好。清除浏览器缓存并再次尝试测试

标签: jquery jquery-plugins fancybox-2


【解决方案1】:

您的脑海中有 3 个 jQuery(document).ready 实例,尝试将所有脚本移至一个 jQuery(document).ready 这应该可以解决无法识别 .fancybox 方法的问题

【讨论】:

  • 感谢您快速准确的回复。
【解决方案2】:

是的,您有几个 jQuery(document).ready,其中一些显式地为 $ 别名,而另一些则没有。

此外,在您的代码中间的某个地方,您再次加载了 jQuery

<script type="text/javascript" charset="utf-8" src="http://opteracreative.com/~mac/?ACT=10&ui=core,widget,mouse,position,draggable,resizable,button,dialog,datepicker&plugin=markitup,toolbox.expose,overlay,tmpl&file=underscore,cp/date&v=1388434578&use_live_url=y&include_jquery=y"></script>

我相信全局 jQuery 对象确实加载了它的插件,但是你用一个没有插件的新对象替换它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-12
    • 2012-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    • 2015-08-10
    相关资源
    最近更新 更多