首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有动态jQuery标记的外部javascript文件中的ASP.NET触发器

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

Stack Overflow用户
提问于 2014-01-17 12:59:27
回答 3查看 169关注 0票数 0

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

代码语言:javascript
复制
$("#city, #<%=tbSiteSearch.ClientID%>").on('keydown', function (e) {

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

现在,当我将这个代码线移动到一个外部.js文件时,我的ASP.NET标记就不再可用了。

如何在仍然能够在服务器控件上动态添加触发器的同时将代码移动到外部.js文件?请提供一个代码示例,说明如何执行:)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-01-17 13:04:50

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

代码语言:javascript
复制
  <div id="myvalue" class="hidden"> <%=tbSiteSearch.ClientID%> </div>

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

代码语言:javascript
复制
var id = $("#myvalue").text();
$("#city, #"+id).on('keydown', function (e) {
票数 2
EN

Stack Overflow用户

发布于 2014-01-17 13:09:37

您可以在ASPX中使用这样的内容:

代码语言:javascript
复制
<script>
     var tb=<%=tbSiteSearch.ClientID%>;
</script>

然后在您的JS文件中使用以下内容:

代码语言:javascript
复制
$("#city, #"+tb).on('keydown', function (e) {
票数 1
EN

Stack Overflow用户

发布于 2014-01-17 13:14:20

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

请求路径: C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll可执行:*.js名称:

但是,我真的不推荐这种方法,因为ASP.NET将为最小的利益做更多的工作。

您最好为元素分配ID或类,并在此基础上进行选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21186646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档