2014-12-11 5 views
0

У меня есть обычный JS-файл для моего сайта, который использует много jQuery. Форма, которую я пытаюсь реализовать, использует prototype.js, поэтому есть конфликт, и я бы предпочел не менять пространство имен в моем общем JS-файле.Pass jQuery noConflict() to ajax

Можно ли загрузить форму через AJAX и как-то освободить «$», чтобы скрипты формы могли правильно загружаться?

Что я имею в виду:

... страница HTML содержит DIV, где форма должна нагрузить:

<div id="form-container"></div> 
<script src="myScripts.js"></script> 

... и myScripts.js файл будет включать в себя следующее:

var request = $.ajax({ 
    url: "form-code.html", 
    beforeSend: function() { 
     $.noConflict(); 
    }, 
    dataType: "html" 
}); 

request.done(function(html){ 
    $("#form-container").html(html); 
}); 

... и форма-code.html будет включать в себя:

<script src="prototype.js"></script> 
<form> 
    <!-- form code here --> 
</form> 

Любые предложения были бы весьма признательны; благодаря!

ответ

-1

Вы должны изменить общий файл js. Вы не можете использовать это в ajax-запросе. Весь смысл использования noConflict заключается в том, что $ не используется другой библиотекой, когда она используется одним. И объявив, что в ajax-вызовах предают это намерение, потому что до этого прототип и jQuery объявляют $ по-своему.