我有一个主视图调用索引,其中包含一些文本框,并允许通过部分 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/