2013-04-12 3 views
3

я использую этот код:Jquery переход от 1.8.3 до 1.9.1 перестает работать в одной строке, и я не знаю, почему

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/

+2

Пожалуйста исследуйте при обновлении. http://jquery.com/upgrade-guide/1.9/ – Ian

ответ

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 флажок на левой стороне)

6

$.browser был устаревшим в JQuery 1.3 и удален в 1.9.

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

Вы должны использовать jQuery migrate plugin, чтобы увидеть какие-либо ошибки при переходе на 1.9x. Кроме того, jQuery рекомендует использовать обнаружение функций с помощью библиотеки, такой как Modernizr.

0

Используйте функцию обнаружения.

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

(не проверено)