Конфликты между jQuery и Prototype

Я создаю приложение rails и устанавливаю этот гем под названием "best-in-place" для одноразового редактирования. Некоторое время он работал, но после того, как я боролся с конфликтами jQuery и Prototype, он перестал работать, и теперь я получаю это сообщение об ошибке при попытке загрузить страницу.

http://dl.getdropbox.com/u/3481269/Screen%20shot%202011-04-30%20at%206.17.45%20PM.png

Я включаю как JQuery, так и JS-файлы прототипов.

    <script src="/javascripts/jquery.js?1303396383" type="text/javascript"></script> 
<script src="/javascripts/rails.js?1303562965" type="text/javascript"></script> 
<script src="/javascripts/application.js?1303842064" type="text/javascript"></script> 

    <script language="javascript" type="text/javascript"> 
        $j = jQuery.noConflict();
    </script> 

    <script src="/javascripts/prototype.js?1303686720" type="text/javascript"></script> 
<script src="/javascripts/jquery.purr.js?1302145859" type="text/javascript"></script> 
<script src="/javascripts/best_in_place.js?1302150372" type="text/javascript"></script> 

Можете ли вы помочь мне решить проблему, что может быть причиной этой ошибки?

2 ответа

Вы назначаете JQuery .noConflict() метод для $j так что для JQuery вещи вы должны теперь использовать $j не $ так например $j(document).ready(...

Я предполагаю, что лучший плагин на месте для jQuery, так что прости все остальное, если я ошибаюсь. Если вы не написали тонну JS, которая зависит от Prototype, в вашем приложении, я бы, вероятно, отказался от нее в пользу jQuery. Это довольно легко сделать переключатель.

Даже при том, что возможно использовать оба с надлежащим пространством имен, это не стоит. Между ними существует огромное количество совпадений, и вы добавляете в свой код дополнительный вес. Одного фреймворка JavaScript должно хватить на одну страницу!:)

Другие вопросы по тегам