Jquery .on()不适用于动态创建的元素
所以我对这个问题有点困惑。他们使用时,我正在复制这个选择。我们的目标是让更多的球员加入一个团队。如果他们添加一个,则会创建另一个选择。如果他们添加了第二个玩家,则会创建第三个选择 目前,它仅在第一次选择更改时复制。Jquery .on()不适用于动态创建的元素,jquery,Jquery,所以我对这个问题有点困惑。他们使用时,我正在复制这个选择。我们的目标是让更多的球员加入一个团队。如果他们添加一个,则会创建另一个选择。如果他们添加了第二个玩家,则会创建第三个选择 目前,它仅在第一次选择更改时复制。.on()不应该应用于javascript解析和绑定后动态创建的所有元素吗?如何使其仅适用于最近添加的选择?提前感谢您的时间 JQuery $(document).ready(function(){ another = $('#addplayers'); $('.add
.on()
不应该应用于javascript解析和绑定后动态创建的所有元素吗?如何使其仅适用于最近添加的选择?提前感谢您的时间
JQuery
$(document).ready(function(){
another = $('#addplayers');
$('.addplayer').on('change', function(){
another.clone().removeAttr('id').appendTo($(this).closest('.form-horizontal'));
$(this).removeClass('addplayer');
});
});
HTML
添加玩家
您需要使用以下方法为应用正确的语法:
$(document.body).on('change', '.addplayer', function(){
而不是:
$('.addplayer').on('change', function(){
我的理解是,新版本的jquery不推荐使用这种方法。尝试.on()
并不是不推荐的,您只是在以正确的方式应用它时犯了一个错误。我的意思是,使用$(document.body).on('change','addplayer',function()){
这种事件委派方法。@Aarmora一点也不反对。@dystroy现在正在搜索文档。它确实在我的页面上工作,正如Felix所建议的那样,所以我只是想知道为什么我会这样想,并开始像以前那样编写代码。.live()
。
$('.addplayer').on('change', function(){