3

我正在使用这段代码:

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

它适用于 jQuery 1.8.3。

现在我更改为 jQuery 1.9.1,它停止工作

我的大多数其他代码都有问题,主要是我必须将 .live 更改为 .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

4 回答 4

6

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

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

在迁移到 1.9x 时,您应该使用jQuery 迁移插件来查看任何错误。此外,jQuery 建议将特征检测与诸如 Modernizr 之类的库一起使用。

于 2013-04-12T14:33:58.050 回答
5

您可以使用jQuery Migrate 插件并调用$.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(请参阅左侧选中的 Migrate 1.1.0 复选框)

于 2013-04-12T14:34:45.337 回答
0

使用特征检测。

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

(未测试)

于 2013-04-12T15:04:45.167 回答
0

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

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

于 2013-04-12T14:35:04.917 回答