Используя JQuery и Прототип на той же странице

33
задан Dónal 16 January 2012 в 10:50
поделиться

7 ответов

Казалось бы, что самый простой ответ должен будет стиснуть зубы и включать Ваши noConflict строки. Конечно, если Ваши страницы не используют общий заголовок, то решение не могло бы быть лучшим.

5
ответ дан 27 November 2019 в 18:38
поделиться

Я прошел это некоторое время. Это является очень раздражающим, и в конце я решил избавиться от всего своего старого Опытного материала и заменить его jQuery. Мне действительно нравится способ, которым Прототип справляется с некоторыми задачами Ajax, но это не стоило компромисса поддержания всего никакого материала конфликта.

3
ответ дан 27 November 2019 в 18:38
поделиться
<script>
    document.write(unescape('%3Cscript type="text/javascript" src="/obp/js/jquery.js"%3E%3C/script%3E'));
</script>
<script>
    jQuery.noConflict();
    var $j = jQuery;
</script>

или

var scripty = document.createElement('script');
scripty.href="/obp/js/jquery.js";
document.getElementsByTagName('head')[0].appendChild(scripty);
jQuery.noConflict();
var $j = jQuery;

РЕДАКТИРОВАНИЕ:

я испытал это предложение, но последние 2 строки производят ошибку

jQuery is not defined
1
ответ дан 27 November 2019 в 18:38
поделиться

На вашем месте я не бросил бы свой код конфликта в JavaScript, включают файл как Вы, полагал о вышеупомянутом, и затем выясните некоторый процесс, где я установил бы эти вещи, я должен включать во все свои страницы в одном центральном месте. Если Вы работаете с прямыми файлами HTML, и у Вас нет вида шаблонной обработки/сценариев серверной стороны возможности для того, что включено в документ, всегда существует возможность выполнения Серверной стороны, Включают.

Так или иначе, боль Вы испытаете обновление каждой из Ваших страниц, на этот раз возвратится снова, когда необходимо обновить код аналитики или нижний колонтитул сайта.

0
ответ дан 27 November 2019 в 18:38
поделиться

Вы можете сначала вызвать jquery, а затем установить

var $j = jQuery;

prototype, который в этом случае возьмет на себя управление $ .

Или вы можете просто обратиться к jQuery, используя полное имя функции jQuery (jQuery).

1
ответ дан 27 November 2019 в 18:38
поделиться

Не могли бы вы просто включить код jQuery = noConflict () в исходном файле jquery.js? Почему это должно быть определено именно так?

2
ответ дан 27 November 2019 в 18:38
поделиться

Используйте прототип ниже jQuery следующим образом:

<script type="text/javascript" src="news/jquery-1.2.3.pack.js"></script>
<script type="text/javascript" src="news/jquery.easynews.js"></script>


<script type="text/javascript" src="lb/js/prototype.js"></script>
<script type="text/javascript" src="lb/js/scriptaculous.js?load=effects"></script>
<script type="text/javascript" src="lb/js/lightbox.js"></script>
<link href="lb/css/lightbox.css" rel="stylesheet" type="text/css" />

в этом В случае, если функция jQuery создаст проблему, вы можете использовать это для решения проблемы:

<script type="text/javascript">
     jQuery.noConflict();
     var JQ = jQuery;//rename $ function
</script>
0
ответ дан 27 November 2019 в 18:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: