【问题标题】:(script 438 error) My jQuery plugins not work in Internet Explorer(脚本 438 错误)我的 jQuery 插件在 Internet Explorer 中不起作用
【发布时间】:2014-09-02 17:08:37
【问题描述】:

我正在使用 jQuery 循环和 jcarousel 插件。

这些插件在 localhost 中运行良好,但现在我将示例托管在免费主机服务中只是为了进行一些测试,而我的 jQuery 插件在 Internet Explorer 中无法运行。但他们在谷歌浏览器中工作。我使用的是 IE 10。

你知道为什么会这样吗?

我将脚本导入到我的 scripts.php 文件中,然后将此文件包含在我的页面中:

<script type="text/javascript" src="scripts/jquery.js"></script>
<script type="text/javascript" src="scripts/cycle.js"></script>
<script type="text/javascript" src="scripts/cycle_function.js"></script>
<script type="text/javascript" src="scripts/shadowbox/shadowbox.js"></script>
<script type="text/javascript" src="scripts/shadobox_function.js"></script>
<script type="text/javascript" src="scripts/jcarousel.js"></script>
<script type="text/javascript" src="scripts/jcarousel_function.js"></script>

我的循环功能:

$(function(){
  $("#last_news ul").cycle({
        fx:'fade',
        speed: 1500,
        timeout: 5000,
        pager: '#pager',
  })       
})

我的 jCarousel 函数:

$(function() {
    $("#carosel").jCarouselLite({
        vertical: 'true',
        auto: 5000,
        speed: 2000,
        visible: 4

    });
});

【问题讨论】:

  • IE报错了吗?
  • 感谢您的回答。我对 Internet Explorer 网络工具不是很熟悉,但是当我单击 f12,然后单击“控制台”时,我收到这条红色消息:“SCRIPT438: object dont support the property and method 'cycle' cycle_function.js, line 2 char 3
  • 我点击f12,现在在本地主机上看到控制台,我没有收到任何错误。
  • 在谷歌浏览器上,有时我还需要刷新页面,以便插件开始工作!
  • 循环和jCarousel初始化脚本有什么区别(除了选择器和试用逗号)?我一定错过了什么,因为我认为它们是两个不同的插件

标签: javascript jquery internet-explorer jquery-plugins jquery-cycle


【解决方案1】:

您的脚本中有一些错误。 您尚未加载脚本 jcarousellite.js,但您在页面上使用了它:

 $(function() {
 $("#carosel").jCarouselLite({
    vertical: 'true',
    auto: 5000,
    speed: 2000,
    visible: 4

 });
 }); 

我想你想要这个:

$(function() {
 $("#carosel").jcarousel({
    vertical: 'true',
    auto: 5000,
    speed: 2000,
    visible: 4

 });
 }); 

确保“#carosel”的拼写错误确实是 ID 名称。而不是 #carousel。

您没有加载“shadowbox_function.js”,因为您将其拼写为“shadobox_function.js”

除此之外,您还需要一个指向您页面的链接。没有办法告诉其他明智的。

【讨论】:

    【解决方案2】:

    试试这个

    (function($) {
        $('#carosel').jCarouselLite({
            vertical: true,
            auto: 5000,
            speed: 2000,
            visible: 4
        });
    })(jQuery);
    

    【讨论】:

    • 在开始和结束时没有这些小单引号,这种格式是 sux
    【解决方案3】:

    好的,首先,你忘记关闭循环函数中的行

    所以而不是:

    $(function(){
      $("#last_news ul").cycle({
            fx:'fade',
            speed: 1500,
            timeout: 5000,
            pager: '#pager',
      })       
    })
    

    你需要:

    $(function(){
      $("#last_news ul").cycle({
            fx:'fade',
            speed: 1500,
            timeout: 5000,
            pager: '#pager',
      }); //<-- Added semi-colons ( ; ) here,
    }); //<-- and here.
    

    此外,根据最佳实践,我建议您将所有自定义 js 函数放在 custom.js 文件中,然后从那里运行它们。只需确保将其包含在您的标题中即可。

    IE 对最佳实践有点严格。

    请查看有关这些插件的文档以获取更多信息。 谢谢

    【讨论】:

      【解决方案4】:

      我真的不知道这是否有帮助,但根据一些经验,当你在最后一个数组元素之后有一个“,”时,IE 不能很好地工作,就像你在:

      $(function(){
        $("#last_news ul").cycle({
              fx:'fade',
              speed: 1500,
              timeout: 5000,
              pager: '#pager',
        })       
      })
      

      【讨论】:

      • 谢谢 Mindastic,但也不起作用。我之前已经尝试过,因为我也发现有些人在结尾处说“,”的问题。
      • 这是一个长期修复的问题,用 ES5 修复了 stackoverflow.com/a/7246662/1517919
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-07
      • 2019-08-12
      相关资源
      最近更新 更多