#javascript #prototypejs #jquery
#javascript #прототипы _BOS_ #jquery
Вопрос:
Я использую комбинацию jQuery, jQuery mobile, prototype и photoswipe. Я знаю, что существуют конфликты между jQuery и prototype из-за использования $
ярлыка. Итак, я сделал jQuery.noConflict()
. Теперь в моей консоли Firebug он больше не сообщает о каких-либо ошибках. Однако, когда я перехожу к тегу Firebug DOM, я вижу: и когда я проверяю строку 4725, это var $continue = new Error('"throw $continue" is deprecated, use "return" instead');
. Это была ошибка, которую я получил до того, как использовал jQuery.noConflict()
. Должен ли я беспокоиться?
Вот несколько фрагментов кода из моего HTML-файла:
<script type="text/javascript" src="jsandcss/prototype.js"></script>
<script type="text/javascript" src="jsandcss/jquery-1.6.4.min.js"></script>
<script type="text/javascript" src="jsandcss/jquery.mobile-1.0rc2.min.js"></script>
<script type="text/javascript" src="jsandcss/klass.min.js"></script>
<script type="text/javascript" src="jsandcss/code.photoswipe.jquery-2.1.6.min.js"></script>
<link href="jsandcss/jquery.mobile-1.0rc2.min.css" type="text/css" rel="stylesheet" />
<script>
var $j = jQuery.noConflict();
$j(document).ready(function(){
});
</script>
Комментарии:
1. Попробуйте сначала включить jQuery плагины, вызвать
jQuery.noConflict()
, затем включить prototype.2. @NRohler Спасибо! Я больше не получаю сообщение об ошибке. Но мне интересно, вызывает ли это сообщение об ошибке (см. Скриншот выше) огромную озабоченность. Это потому, что я сначала загрузил библиотеки, а затем вызвал
jQuery.noConflict()
?
Ответ №1:
Я не уверен, что хорошо понимаю, как вы увидели эту ошибку, но $continue — это объект ошибки, который до prototype 1.5 (если я помню) вы могли использовать для имитации ключевого слова continue в итерации прототипа (используя методы each, collect , …). Теперь вы можете просто выполнить return в функции итерации. К вашему сведению, $break тот же, это предопределенная ошибка типа $continue, которую вы можете использовать для имитации разрыва в итерации прототипа. Этот все еще сохраняется в активной версии прототипа, но $continue теперь устарел.
Так что да, $continue и $ break являются глобальными (= принадлежат объекту window) и ЯВЛЯЮТСЯ некоторыми ошибками, но еще не выброшены, просто созданы.
Надеюсь, эта информация полезна.