jQuery Transit:对象无没有方法'setFromString'



我已经加载了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>

感谢您的任何帮助。

好吧,在这种情况下,事实证明这是jQuery的错。 jQuery 1.8 是这里的罪魁祸首。 在 1.7.2 中加载解决了这个问题。 我会向 transit 和 jQuery 团队报告此错误。

更新(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/

相关内容

  • 没有找到相关文章

最新更新