繁体   English   中英

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

[英]jQuery trigger in external javascript file with dynamic ASP.NET tag

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

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

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

现在,当我将此代码行移动到外部.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或Class并根据其进行选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM