带有动态 ASP.NET 标签的外部 javascript 文件中的 jQuery 触发器



我的.aspx页面中有以下代码:

$("#city, #<%=tbSiteSearch.ClientID%>").on('keydown', function (e) {

如您所见,我正在动态注入服务器端控件的客户端 ID。

现在,当我将此代码行移动到外部.js文件时,我不再具有 ASP.NET 标记的可用性。

如何将代码移动到外部.js文件,同时仍能够在该服务器控件上动态添加触发器?请提供有关如何执行此操作的代码示例:)

一个简单的方法是在HTML中包含<%=tbSiteSearch.ClientID%>(在隐藏容器中)。

  <div id="myvalue" class="hidden"> <%=tbSiteSearch.ClientID%> </div>

然后,任何 js 文件都可以使用此值:

var id = $("#myvalue").text();
$("#city, #"+id).on('keydown', function (e) {

您可以在 ASPX 中使用类似的东西:

<script>
     var tb=<%=tbSiteSearch.ClientID%>;
</script>

然后在您的 JS 文件中使用它:

$("#city, #"+tb).on('keydown', function (e) {

IIS 上的 ASP.NET 处理对某些类型文件的请求。 您可以通过打开 Internet 信息服务 (IIS) 管理器,选择您的站点并打开"处理程序映射"来查看此列表,您将看到 ASP。 NET(和其他)根据其各自的文件扩展名列出。如果要添加要由 ASP.NET 处理的 javascript,则需要添加具有以下值的脚本映射:

请求路径: *.js可执行文件:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll名称:Javascript ASP 处理程序

但是,我真的不推荐这种方法,因为 ASP.NET 会做更多的工作而获得最小的收益。

最好为元素分配一个 ID 或类并基于此进行选择。

最新更新