javascript - Jquery/Javascript 不适用于部分 View

标签 javascript jquery asp.net-mvc

我有一个主视图调用索引,其中包含一些文本框,并允许通过部分 View 调用将其他文本框添加到屏幕上。主视图引用了一个js文件,其中包含以下代码:

外部JS文件:

$("input[type='text']").on("change", function () {
 alert("here");
});

每当我修改主视图加载的文本框中的值时,该代码都会起作用。但是,当我尝试更改由部分 View 添加的文本框中的值时,它没有任何作用。

根据我的理解,live() 方法应该处理 dom 中的当前元素以及添加到 dom 中的任何 future 元素。现在已被 .on() 取代。因此,我使用 .on()。有什么我不知道的新东西正在取代 .on() 吗? .live() 和 .on() 在我的情况下不起作用。

对于良好的实践,我不想将 js/jquery 代码再次添加到部分 View 中以使其正常工作。我希望避免冗余并实现良好的做法。任何帮助表示赞赏。

最佳答案

加载页面时,on() 必须绑定(bind)到 DOM 中已存在的元素,以将事件委托(delegate)给动态添加的元素:

$(document).on("change", $("input[type='text']"), function () {
  alert("here");
});

可以使用任何静态父元素来代替 $(document) 来委托(delegate)事件。

关于javascript - Jquery/Javascript 不适用于部分 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27850253/

相关文章:

javascript - 如何在点列表中附加光滑的箭头?

javascript - JQuery Toggle Slide – 当其他元素切换关闭时显示元素

html - 将 ASP 页面滚动到错误消息

asp.net-mvc - Elmah,最有效的错误持久机制是什么?

javascript - 内容更改时 div 大小的动画变化

javascript - 我正在为我的应用程序使用 Firebase 身份验证。似乎存在无限循环,页面不断被重定向

javascript - 使用javascript销毁flash对象

javascript - 编写一个查找值并返回颜色的循环

php - 在模式而不是新页面中加载查询搜索结果

c# - SignalR,将对象从 HUB 传递到客户端 (MVC C#)