【问题标题】:use Kendo UI simultaneously with another jQuery version同时使用 Kendo UI 和另一个 jQuery 版本
【发布时间】:2012-11-28 15:30:25
【问题描述】:

Kendo UI 的当前 jQuery 版本(2012 年第三季度)是 1.8.2。

我想在现有网站上使用这个库。该站点已经使用 jQuery,但版本为 1.5.0 1.4.4。将此版本升级到 1.8.2 不是一种选择,因为它会破坏整个页面某些页面上的某些组件。

它们两者可以在同一个站点/页面上同时运行吗?

Telerik.ASP.NET.Ajax 使用 jQuery 代理,确保其控件始终使用正确的 jQuery 库:

$telerik = $;

KendoUI 有类似的吗?

【问题讨论】:

  • “因为它破坏了整个页面” 是什么导致它破坏了整个页面?就语法而言,1.5 和 1.8.2 之间只有一些非常小的差异。主要是 .attr() 与 .prop() 的情况,但即使是很小的差异,也不太可能引起问题。
  • 我不知道这两个版本之间没有太多差异(我从其他开发人员那里得到了关于这些故障的报告,我会进一步调查)。但问题仍然存在......
  • 请查看this在同一页面中使用两个版本的jquery的相关答案。
  • @EmilianoBartolome 谢谢,通常我会像这样为 KendoUI 设置 1.8.2:$kendo.$ = $.noConflict(true);就在加载 1.5.0 之前。版本。但是 $kendo 并没有在 Kendo UI 库中连接任何东西:(

标签: asp.net kendo-ui jquery


【解决方案1】:

你应该可以这样做:

<script src="jquery-1.5.0.min.js"></script>
<!-- plugins for 1.5.0 first... -->
<script src="jqueryui.min.js"></script>
<script src="jquery.hoverintent.min.js"></script>
<!-- then your code -->
<script src="main.js"></script>

main.js 包含的位置:

var $jqueryold = $.noConflict(true);
(function($){
    // do stuff with $
    $(document).ready(function(){
        // ...
    });
})($jqueryold);

如果您的所有代码都在准备好的文档中,您也可以跳过立即执行的功能:

var $jqueryold = $.noConflict(true);
$jqueryold(document).ready(function($){
    // do stuff with $
    $("#tabs").tabs();
});

然而,理想的解决方案是更新旧代码以使用新版本的 jQuery。

【讨论】:

  • 谢谢,我想我会试试这个解决方案,看看它是否能很好地与 KendoUI 配合使用。不过,我看到了一种副作用,即使在我的情况下它可能不会成为问题。如果我在 main.js 之后继续加载 jquery-1.8.2.min.js,我将丢失对先前加载的插件的引用: $("div").hoverIntent() 可能不起作用,但 $jqueryold .hoverIntent() 应该这样做;我只需要记住这一点...... :)
  • @Lucian 没错,这就是(function($){ ... })($jqueryold) 的意义所在,它允许您在该匿名函数中使用$ 而不是$jqueryold
  • 涉及到整个页面的事情,貌似只有部分自定义控件会被改成1.8.2,而1.5.0的版本其实是1.4.4...不好意思混淆了
  • 仍然只有几处更改,真正遇到兼容性问题的地方是 jQuery 1.3 和 1.2
  • 加载 jquery 1.8.2 后,我添加了 var j182 = $.noConflict(true);然后我修改了 kendo 库以使用 j182 变量而不是 jQuery: ;(function($, undefined) { /*kedo ui code */})(j182);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多