jQuery 2.0越来越成熟:
http://blog.jquery.com/2013/03/01/jquery-2-0-beta-2-released/
jQuery 2.0与旧版浏览器不兼容,所以必须知道什么时候停留jQuery 1.9.推荐的方法是使用IE的条件注释:
<!--[if lt IE 9]> <script src="jquery-1.9.1.js"></script> <![endif]--> <!--[if gte IE 9]><!--> <script src="jquery-2.0.0b2.js"></script> <!--<![endif]-->
>当前Web开发最佳实践表明,我们应该避免浏览器嗅探或用户代理字符串解析,但这不是什么条件注释?
> jQuery 2.0是否只能打破旧版Internet Explorer的兼容性?还是有其他浏览器会在2.0中更糟糕?
>如果这不仅仅影响Internet Explorer(这是唯一的条件性评论工作),那么我们应该采用什么策略来选择最佳的jQuery?
>在JavaScript环境中有一个全局可访问的值/对象/函数/ etc,其存在可以用于指示与jQuery 2.0的兼容性(例如特征检测)?
主要问题
我的项目目前使用Require.JS来模块化我的代码.我的代码只有当遇到需要它的第一个部分时才加载jQuery.
使用Require.JS加载正确版本的jQuery的最佳方法是什么?
我正在考虑:
>在加载Require.JS之前使用IE条件注释,然后手动“定义”jQuery
>在设置Require.JS的路径(在任何需要的jQuery之前)的代码中使用JS功能检测,根据需要将路径设置为1.9或2.0(我的首选方法)
总是使用1.9无论什么(最安全最无聊的方法)
解决方法
适应niaccurshi的答案AMD规格.
// Do this before your first use of jQuery. var pathToJQuery if('querySelector' in document && 'localStorage' in window && 'addEventListener' in window) { pathToJQuery = '//cdn/jQuery2.0' } else { pathToJQuery = '//cdn/jQuery1.9' } require.configure({'paths':{ 'jquery': pathToJQuery }}) require(['jquery'],function($){ /* you get the one you need here */ })