Конфликты между jQuery и Prototype - PullRequest
0 голосов
/ 01 мая 2011

Я создаю приложение 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 ]

4 голосов
/ 01 мая 2011

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

0 голосов
/ 01 мая 2011

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

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

...