Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Prototype и jQuery используем одновременно (https://javascript.ru/forum/jquery/4121-prototype-i-jquery-ispolzuem-odnovremenno.html)

ivanweb 25.06.2009 14:42

Prototype и jQuery используем одновременно
 
Подскажите, как можно заставить работать одновременно jquery и prototype??

В шапке пишу:

<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/menu.js"></script>


ито и дргое важно


делаю так:

<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/menu.js"></script>

<script>jQuery.noConflict();</script>

в IE ошибка

Riim 25.06.2009 14:46

Конфликт только из-за "$". Либо учите все плагины для Jquery работать без "$" (они обычно уже научены: (function($) {})(jQuery) ) , либо наоборот.

ivanweb 25.06.2009 14:58

Как это сделать? (научить)

Riim 25.06.2009 15:07

Учитесь находить нужное в документации: http://docs.jquery.com/Using_jQuery_...ther_Libraries

ivanweb 25.06.2009 15:13

я это читал ..

<html>
<head>
<script src="jquery.js"></script>
<script src="menu.js"></script>

<script src="prototype.js"></script>
<script>
// Use jQuery via jQuery(...)
jQuery(document).ready(function(){
jQuery("div").hide();
});

// Use Prototype with $(...), etc.
$('someid').hide();
</script>
</head>
<body></body>
</html>

не помагает, это я изначально писал

Octane 25.06.2009 15:43

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">jQuery.noConflict();</script>
<script type="text/javascript" src="js/prototype.js"></script>

Наверное логичнее подключать скрипты в таком порядке, чтобы не произошло перезаписи ссылки $.

e1f 25.06.2009 15:46

$.noConflict()
This helps to make sure that jQuery doesn't conflict with the $ object of other libraries.
By using this function, you will only be able to access jQuery using the 'jQuery' variable. For example, where you used to do $("div p"), you now must do jQuery("div p").
NOTE: This function must be called after including the jQuery javascript file, but before including any other conflicting library, and also before actually that other conflicting library gets used, in case jQuery is included last.

Сначала подключаем jQuery, потом вызов noConflict, потом prototype

UPD Ступил, Octane все правильно написал :)

4love 13.02.2010 21:01

Вечер добрый всем!

Подскажите пожалуйста, использую в сайте два разных скрипта Java jquery.prettyPhoto (для галереи) и jquery-easing (на нем построена шапка и весь сайт). Как не смешно, но работает то один, то другой, а вот вместе никак...

<script>jQuery.noConflict();</script> не помогает

коды следующие:

<script src="js/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="js/jquery.prettyPhoto.js" type="text/javascript"></script>
<script src="js/gallery.js" type="text/javascript"></script>

и

<script src="js/jquery-1.2.1.pack.js" type="text/javascript"></script>
<script src="js/jquery-easing.1.2.pack.js" type="text/javascript"></script>
<script src="js/jquery-easing-compatibility.1.2.pack.js" type="text/javascript"></script>
<script src="js/coda-slider.1.1.1.pack.js" type="text/javascript"></script>

Заранее огромное спасибо!

Octane 13.02.2010 21:21

easing есть для новой версии jQuery

4love 13.02.2010 21:41

Цитата:

Сообщение от Octane (Сообщение 44694)
easing есть для новой версии jQuery

что-то такого не могу найти в сети((

Octane 13.02.2010 21:52

http://plugins.jquery.com/project/AnimEasing

sysya 13.02.2010 21:53

тут с примерами http://vremenno.net/js/jquery-easing-plugin/

4love 14.02.2010 00:09

после установки новой версии 1.3. не то чтобы либо сайт, либо галерея работала, а ни то ни то не работает(

может еще что-то подскажете, что в коде поменять или прописать нужно?

Octane 14.02.2010 00:24

Цитата:

Сообщение от 4love
может еще что-то подскажете, что в коде поменять или прописать нужно?

попробовать угадать?

4love 14.02.2010 00:45

зачем угадывать?
я так понимаю, что тут дело не в версии, по отдельности всё работает нормально да и новая весрия jquery-easing-compatibility1.3. в основной части не отличается от 1.2, а там где отличается, так сайт постороен на старой версии и не вижу именно в этом проблемы.
здесь получается конфликт "$", а следовательно его надо просто как-то избежать. тот способ, что описан
<script>jQuery.noConflict();</script>
хорош, но в данном случае не помагает. возможно, есть какая-то другая команда, это я и хочу узнать.

4love 14.02.2010 01:06

а еще, если убрать эту строчку
<script src="js/coda-slider.1.1.1.pack.js" type="text/javascript"></script>

то PrettyPhoto сразу нормально работает, но в таком случае меню исчезает. так что проблему нужно искать здесь, а не в версиях jquery-easing...

Octane 14.02.2010 01:13

Цитата:

Сообщение от 4love
проблему нужно искать здесь

Где здесь? Нам самим что ли все эти плагины найти, скачать и подключить, и еще подготовить тестовый пример, да так чтобы там что-то не работало? Ни какие ошибки возникают не говорите, ни ссылки на страницу не даете. Оно нам надо гадать, что там может происходить?

4love 14.02.2010 01:32

вот тестовый пример создаваемой галереи, у меня всё аналогично:
http://www.linkexchanger.su/examples...oto/demo2.html
библиотеки подключены к странице, как описано выше, повторюсь:
<script src="js/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="js/jquery.prettyPhoto.js" type="text/javascript"></script>
<script src="js/gallery.js" type="text/javascript"></script>
если это отдельная страница, то всё работает.

но эту галерею я хочу вписать в сайт, ориентировочный шаблон такой:
http://www.templatemo.com/preview/templatemo_159_wooden
сайт тоже сам по себе настроен и работает отлично. меню построено на cross-link'ах и страница у меня одна: index.html. все скрипты есть и подключены:
<script src="js/jquery-1.2.1.pack.js" type="text/javascript"></script>
<script src="js/jquery-easing.1.2.pack.js" type="text/javascript"></script>
<script src="js/jquery-easing-compatibility.1.2.pack.js" type="text/javascript"></script>
<script src="js/coda-slider.1.1.1.pack.js" type="text/javascript"></script>
п.с. css-ки тоже есть все.

но когда в тело сайта пытаюсь подключить скрипты PrettyPhoto, всё что остается на сайте - это "loading", больше ничего нет.

если убрать из библиотеки сайта
<script src="js/coda-slider.1.1.1.pack.js" type="text/javascript"></script>
то галерея начинает работать, но меню в сайте исчезает, что неприемлимо.

надеюсь, описано подробно. если кто-нибудь сможет помочь, буду признательна:)

moonvader 29.09.2011 17:37

Доброго дня
у меня по всей видимости конфликтуют prototype и jquery
меню сайта сделано по аналогии с http://tympanus.net/Tutorials/SlideDownBoxMenu/
про него можно найти туториал тут http://tympanus.net/codrops/2010/07/...down-box-menu/

хотел поставить lightbox 2, который использует prototype
в итоге lightbox работает, а меню перестало
при этом в консоли ошибок js ничего нет, но меню не показывается


насколько понимаю такой конфликт - частое дело, только не совсем понимаю, что делать для его решения.
читал про jQuery.noConflict(); но как применить его в данном случае не понял (скорее всего нужно как-то переписать функцию, которая приведена в конце туториала, чтобы не было проблем с $ , но как это сделать не понял)

проблему решил!
http://semenushkin.ru/2010/07/14/к�...�теками/
1 - написал jQuery.noConflict();
2 - все $(.... заменил на jQuery(...


Часовой пояс GMT +3, время: 04:00.