jQuery从1.8.3迁移到1.9.1停止在一行中工作,我不知道为什么

时间:2013-04-12 14:32:26

标签: javascript jquery migration jquery-1.9 jquery-1.8

我正在使用此代码:

http://labs.abeautifulsite.net/archived/jquery-alerts/demo/

它与jQuery 1.8.3一起运行良好。

现在我改为jQuery 1.9.1并且它停止了工作

我的大多数其他代码都有问题,大多数情况下我必须更改.live for .on并且它已经解决了(我不知道这是否正确),但是使用此代码,我不会找到问题。

这条线似乎给出了问题:

// IE6 Fix
var pos = ($.browser.msie && parseInt($.browser.version) <= 6 ) ? 'absolute' : 'fixed';

你可以在jsFiddle中测试它,你可以改为jQuery 1.8.3,看看它是如何工作的。

http://jsfiddle.net/sebababi/P8sfn/1/

4 个答案:

答案 0 :(得分:6)

$.browser在jQuery 1.3中已弃用,已在1.9中删除。

http://jquery.com/upgrade-guide/1.9/#jquery-browser-removed

迁移到1.9x时,您应该使用jQuery migrate plugin查看任何错误。此外,jQuery建议对诸如Modernizr之类的库使用特征检测。

答案 1 :(得分:5)

您可以使用jQuery Migrate plugin并致电$.browser。它会工作!

使用插件很容易;例如,只需在jQuery的脚本标记之后包含它。

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.1.1.js"></script>

JS:

$.each($.browser, function(i, val) {
  $("<div>" + i + " : <span>" + val + "</span>")
  .appendTo( document.body );
});

DEMO HERE(请参阅左侧选中迁移1.1.0复选框)

答案 2 :(得分:0)

$。浏览器已从1.9中删除。您可以使用jQuery Migrate来获得$ .browser支持。

见前:TypeError: 'undefined' is not an object (evaluating '$.browser.msie')

答案 3 :(得分:0)

使用特征检测。

var someEl = $("#theid");
someEl.css("position","fixed");
if ( someEl.css("position") == "static" ) {
    // doesn't support fixed, use absolute
    someEl.css("position","absolute");
}

(未经测试)