jQuery有一个noConflict()方法作为核心的一部分,但它要求你将jQuery用作命名函数或选择其他你选择的内容(而不是美元符号选择器)。然而,我会说这种方法通常取决于“竞争”库的实现。我曾尝试在Ning社交网络(使用Dojo)和Magento(使用Prototype)中使用它,但我无法使它们与jQuery正常运行。这只是我的个人经验,其他人可能非常成功。
一个缺点是服务器端控件可能会根据它们的容器而被重命名。例如,您可能有:
<asp:panel id="panel1" runat="server"></asp:panel>
这可能呈现为页面上的内容:
```这可能呈现为页面上的内容:
```<div id="ctl00$panel1"></div>
如果你使用$('#panel1')
作为选择器来编写jQuery代码,它将无法工作。解决方法是动态生成id,例如:
Dim js as String = "$('" & panel1.ClientID & "').whatever();"
这可能会使JavaScript代码有点难以阅读,但它确实非常有效。我在一个大型Web应用程序上使用这种方法,jQuery为我们节省了大量时间,更不用说让网站看起来和工作得更好了。
我一直在使用ext,这是另一个与.net相关的javascript框架。它比老式的HTML表单控件更容易使用。
<input type="text" id="whatever" />
与使用ASP.net表单控件相比,您可能希望使用酷炫的JavaScript框架表单验证,而不是不太好用的内置.NET验证器,但我想这取决于您的个人喜好。
如果您确实想继续使用.NET控件,请记住在标记中生成的ID与您定义的不同,因此如果您想在JS中按ID引用控件,请使用:
<%=MyControlId.ClientID%>
显然,Telerik已经开始在一些RadControls中添加jQuery,从Q3版本开始。
我同时使用jQuery和RadControls,但还没有时间进一步研究这个纠缠不清的问题...可能两者都有好处....
我有一种不祥的预感,这可能涉及更多的混乱,但这只是基于一般经验和一点点那个的经验;-)
请查看Atanas Korchev在Telerik上关于这个主题的博客:
http://blogs.telerik.com/AtanasKorchev/Posts/08-11-06/ASP_NET_Ajax_Controls_and_jQuery.aspx
当微软、jQuery、Telerik、JP Morgan和麦当劳在我们的桌面上混合和混杂时,祝我们所有人好运... ;-)
我曾经将jQuery与ASP.NET Ajax一起使用,因为它们各自擅长不同的事情。我从未在同时使用这两个工具时遇到过任何问题。事实上,我通过使用超强大的jQuery选择器来解决了ASP.NET id混乱的问题。通过能够选择元素的类和子元素(基本上是CSS),这使得使用变得非常容易。