Мы планируем использовать библиотеку jQuery для расширения наших потребностей в JavaScript на стороне клиента.
Есть ли какие-либо серьезные проблемы при попытке использовать как ASP.Net AJAX, так и jQuery? Обе библиотеки, похоже, используют $ для особых целей. Есть ли конфликты, о которых нам нужно знать?
Мы также используем элементы управления Telerik, использующие ASP.Net AJAX.
TIA

jQuery имеет метод noConflict () как часть ядра, но тогда он требует, чтобы вы использовали либо jQuery в качестве названной функции, либо что-то еще по вашему выбору (вместо селектора доллара). Однако скажу, что метод часто зависит от реализации «конкурирующей» библиотеки. Я попытался использовать его для социальной сети Ning (которая использовала Dojo) и для Magento (которая использует Prototype), и я не мог заставить ни то, ни другое правильно играть с jQuery. Это только мой личный опыт, и другие были очень успешными.
Мы давно использовали компоненты ASP.NET Ajax, jQuery и Telerik в большом проекте, и у нас не было никаких проблем.
Я определенно рекомендую использовать jQuery
Разработчики ASP.NET Ajax предприняли определенные шаги, чтобы убедиться, что библиотеку можно использовать вместе с jQuery.
Например, ATLAS CTP (бета-версия, которая стала ASP.NET Atlas) раньше имела функцию $ (), но она была удалена и заменена на $ get ().
Я использовал ext, еще один фреймворк javascript с .net. Его гораздо проще использовать, чем старомодные элементы управления HTML-формы.
<input type = "text" id = "whatever" />
Чем использовать элементы управления формы ASP.net. Вы, вероятно, захотите использовать классную проверку формы фреймворка javascript в отличие от не очень хороших встроенных валидаторов .net, но я думаю, что это зависит от ваших предпочтений
Если вы хотите продолжать использовать элементы управления .net, помните, что идентификатор, сгенерированный в разметке, отличается от того, что вы определяете, поэтому, если вы хотите ссылаться на элемент управления по идентификатору в JS, используйте:
<%=MyControlId.ClientID%>
Одним из недостатков является то, что элементы управления на стороне сервера могут быть переименованы в зависимости от их контейнеров. Например, у вас может быть:
<asp:panel id = "panel1" runat = "server"></asp:panel>
Это может быть отображено на странице как:
<div id = "ctl00$panel1"></div>
Поэтому, если вы напишете jQuery, используя $('#panel1') в качестве селектора, это не сработает. Способ обойти это - динамически генерировать идентификатор, например:
Dim js as String = "$('" & panel1.ClientID & "').whatever();"
Это может сделать javascript немного нечитаемым, но он работает достаточно хорошо. Я работаю над большим веб-приложением, используя этот метод, и jQuery сэкономил нам ТОННУ времени, не говоря уже о том, чтобы сайт выглядел и работал намного лучше.
Правильно. Это то, что нужно знать об этом. В нашем веб-приложении я создал базовую страницу, которая предоставляет механизм для регистрации идентификаторов элементов управления, к которым вы хотите получить доступ на стороне клиента, и этот cln отображается как объект JS, например MyId.MYpage.ClientId
В некоторых ситуациях лучше использовать селектор, который находит элементы управления с идентификаторы, оканчивающиеся на [someControlId], например: $ ("[id $ = someControlId]")
Как бы то ни было, нет конфликта между функцией $ jQuery и функциями ярлыка $ с префиксом $ ASP.NET AJAX ($ get, $ find, $ create и т. д.). Точно так же, как использование переменной ж, не мешает вам использовать переменную с именем жoo.
jQuery и ASP.NET AJAX в большинстве случаев хорошо работают вместе. В прошлом году единственный раз, когда я видел, как ASP.NET AJAX ломает код jQuery, был этот сценарий с jDrawer. Однако обходной путь был неплохим.
Недавняя разработка, связанная с этим вопросом:
Скотт Гатри написал 28 сентября 2008 г. (см .: http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx), что Microsoft на самом деле будет начать доставку JQuery с Visual Studio. По умолчанию проекты MVC будут включать библиотеку. Скотт указывает, что это делается с согласия и поощрения команды JQuery.
См. Исходный пост для Полная информация.
видел это. Это должно развеять любые сомнения в совместимости ASP.Net AJAX и jQuery.
Судя по всему, Telerik начал добавлять jQuery в некоторые из своих RadControl, начиная с выпуска Q3.
Я использую как jQuery, так и RadControls, но у меня не было времени, чтобы глубже изучить эту путаницу ... мог бы качнуться в обе стороны ....
У меня есть всестороннее ощущение, что это влечет за собой больше clusterf ***, но это просто основано на общем опыте с некоторыми из этих и немного того ;-)
Посетите блог Атанаса Корчева на Telerik только по этой теме:
http://blogs.telerik.com/AtanasKorchev/Posts/08-11-06/ASP_NET_Ajax_Controls_and_jQuery.aspx
и удачи нам всем, когда MS, jQuery, Telerik, JP Morgan и McDonalds смешиваются и смешиваются на наших рабочих столах ... ;-)
Я использовал jQuery с ASP.NET Ajax, поскольку они оба хорошо справляются с разными задачами. У меня никогда не было проблем с их совместным использованием. Фактически, я обхожу эту странную мешанину идентификаторов ASP.NET, используя сверхмощные селекторы jQuery. Возможность выбора классов и подэлементов элементов (в основном CSS) делает его очень простым в использовании.
Errhhh ... Они предприняли шаги, чтобы убедиться, что ASP.NET AJAX действительно работает с прототип, поскольку в то время jQuery был "малоизвестным хобби-проектом этого парня, работающего на Mozilla" - в то время как прототип работал на 46% всех основных веб-сайтов в мире. ...;)