【问题标题】:jQuery Transit: Object none has no method 'setFromString'jQuery Transit:对象没有没有方法'setFromString'
【发布时间】:2012-08-14 19:31:33
【问题描述】:

我已经在 jQuery 传输中加载了,我确保在加载 jQuery 后完成了它,但我仍然收到此错误:

我查看了 Chrome 中的资源面板,jQuery 传输是在 jQuery 之后加载的。它也已正确加载,并且显示没有问题。

我也在控制台中测试过,测试网站上的例子。它们都返回相同的错误。

这是我的代码:

  $("#current-employers a.industry-company-link").click(function (e)
    {
        e.preventDefault();
        var url = $(this).attr("href");
        var company_container = $("#current-company-profile");
        company_container.load(url);
        company_container.transition({
            y: ($(this).offset().top - company_container.offset().top)
        });
        console.log("container offset: " + company_container.offset().top + "\nURL offset: " + $(this).offset().top);
    });

还有我带来的脚本:

<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.0/jquery-1.8.0.min.js"></script>

        <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery.transit/0.1.3/jquery.transit.min.js"></script>

感谢您的帮助。

【问题讨论】:

    标签: javascript jquery css-transitions jquery-transit


    【解决方案1】:

    好吧,在这种情况下,原来是 jQuery 的错。 jQuery 1.8 是这里的罪魁祸首。加载 1.7.2 解决了这个问题。我会将这个错误报告给运输和 jQuery 团队。

    【解决方案2】:

    更新(2013 年 4 月 13 日):我正在阅读 Transit 的源代码,Cruz 先生似乎已经更新了代码以有效地使用 jQuery 1.8+。如果有人测试过它,请他们确认它有效。谢谢。


    这与 jQuery 和 Transit 使用的 css 挂钩有关。在 1.7 版中,jQuery 没有用于转换的 css 钩子。所以 Transit 为我们实现了一个钩子。然而,jQuery 更新了自己,现在提供了用于转换的 css 钩子。这些现在相互冲突。但是这不是一个错误,因为 jQuery 工作正常,因此不需要向 jQuery 报告。

    您的选择是使用 1.7 版本的 jQuery 并等到 Transit 更新或编辑 Transit 代码,这只需大约一分钟。

    要编辑,请从官方网站获取 Transit 的开发版本。然后转到第 603 行,它显示 $.cssHooks[prop]。删除该方法并将该方法放在那里:

    $.cssHooks[prop] = {
      get: function(elem) {
        var t = $(elem).css('transform');
    
        if (!t || t === "none") {
          t = new Transform();
        }
        return t.get(prop);
      },
    
      set: function(elem, value) {
        var t = $(elem).css('transform');
    
        if (!t || t === "none") {
          t = new Transform();
        }
    
        t.setFromString(prop, value);
    
        $(elem).css({ transform: t });
      }
    };
    

    您可以在数百个可用压缩器中的一个压缩代码,例如http://jscompress.com/

    【讨论】:

    • 这是一个非常棒的答案。谢谢!
    • 这有助于解决我遇到的与 OP 相同错误的问题。谢谢,乔纳森·汤格。很好的答案。
    • 这主要是为我修复它。这个错误使我的页面完全停止。此修复程序允许播放初始过境动画,然后我的其余代码正常工作,但以下过境动画不起作用。它们不是必需的,所以我让它骑。此修复程序使客户满意。非常感谢。
    猜你喜欢
    • 2012-02-20
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-17
    • 1970-01-01
    • 2013-08-17
    相关资源
    最近更新 更多