Jquery/Javascript不适用于部分视图
我有一个主视图调用索引,其中包含一些文本框,并允许通过部分视图调用将其他文本框添加到屏幕上。主视图引用一个js文件,该文件具有以下代码: 外部JS文件:Jquery/Javascript不适用于部分视图,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,我有一个主视图调用索引,其中包含一些文本框,并允许通过部分视图调用将其他文本框添加到屏幕上。主视图引用一个js文件,该文件具有以下代码: 外部JS文件: $("input[type='text']").on("change", function () { alert("here"); }); 每当我修改主视图加载的文本框中的值时,该代码都会工作。但是,当我试图更改由“局部视图”添加的文本框中的值时,它不会执行任何操作 根据我的理解,live()方法应该处理dom中的当前元素和将来添加到dom
$("input[type='text']").on("change", function () {
alert("here");
});
每当我修改主视图加载的文本框中的值时,该代码都会工作。但是,当我试图更改由“局部视图”添加的文本框中的值时,它不会执行任何操作
根据我的理解,live()方法应该处理dom中的当前元素和将来添加到dom中的任何元素。现在已将其替换为.on()。因此,我使用.on()。有什么我不知道的新东西正在取代.on()吗。live()和.on()在我的情况下不起作用
为了获得良好的实践,我不希望再次将js/jquery代码添加到部分视图中以使其正常工作。我希望避免冗余并实施良好实践。感谢您的帮助 加载页面时,必须将()上的绑定到DOM中已存在的元素,以将事件委托给动态添加的元素:
$(document).on("change", $("input[type='text']"), function () {
alert("here");
});
任何静态父元素都可以用来委托事件,而不是$(文档)
。加载页面时,必须将()上的绑定到DOM中已存在的元素,以将事件委托给动态添加的元素:
$(document).on("change", $("input[type='text']"), function () {
alert("here");
});
可以使用任何静态父元素来委派事件,而不是$(文档)
。尝试使用以下代码:
$(document).on("change", "input[type='text']", function () {
alert("here");
});
可以在任何父节点上更改两个输入的文档请尝试使用以下代码:
$(document).on("change", "input[type='text']", function () {
alert("here");
});
可以在任何父节点上更改两个输入的文档您应该使用事件委派。将所有输入放在容器div中,并将事件放在此父元素上。它适用于动态添加的dom元素。所以如果你把它们放进去:
<div class="container">
<input ...>
<input ...>
<input ...>
</div>
您应该使用事件委派。将所有输入放在容器div中,并将事件放在此父元素上。它适用于动态添加的dom元素。所以如果你把它们放进去:
<div class="container">
<input ...>
<input ...>
<input ...>
</div>
因此,基本上您是在尝试委派事件。要做到这一点,正如jQuery文档所说,您需要使用如下内容:
```
```
侦听正文中的事件可能太多,您可能希望侦听某些特定形式或元素中的“更改”事件。因此,基本上您是在尝试委派事件。要做到这一点,正如jQuery文档所说,您需要使用如下内容:
```
```
侦听正文中的事件可能太多,您可能希望侦听某些特定表单或元素中的“更改”事件。查看delegate()
如何加载局部视图?是通过Ajax吗?是的。我想我们用下面的答案来解决这个问题。我认为如果你关心正确的方式,你应该考虑事件泡沫。如果元素总是添加到特定的容器中,那么最好基于特定的容器上下文编写委派,因为$(body)或$(document)会一直冒泡到…@KrishnaDhungana+1,这是一个有效点。谢谢。查看delegate()
如何加载局部视图?是通过Ajax吗?是的。我想我们用下面的答案来解决这个问题。我认为如果你关心正确的方式,你应该考虑事件泡沫。如果元素总是添加到特定的容器中,那么最好基于特定的容器上下文编写委派,因为$(body)或$(document)会一直冒泡到…@KrishnaDhungana+1,这是一个有效点。谢谢你,谢谢你,真管用!我不知道这件事。我能接受两个相同的答案吗?你和matthias_h差不多在同一时间回答。谢谢你,这很有效!我不知道这件事。我能接受两个相同的答案吗?你和matthias_h差不多同时回答。