Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我的jquery (‘.on’)不适用于动态添加的selects

为什么我的jquery (‘.on’)不适用于动态添加的selects
EN

Stack Overflow用户
提问于 2013-02-18 17:33:00
回答 10查看 68.7K关注 0票数 22

我正在动态添加select元素,如下面的HTML所示。我不确定为什么.on('change‘...)不适用于动态选择。我遗漏了什么?

我使用的是Chrome 24.0.1312.57 + jquery 1.8.3。

代码语言:javascript
运行
AI代码解释
复制
<script type="text/javascript">
  $(document).ready(function() {
      $('#x select').on('change', function () { alert('helo'); })
      $('#y select').on('change', function () { alert('helo'); })

      $('#x').html($('#y').html());
  });
</script>

<div id="x"></div>
<div id="y">
    <select>
        <option>O1</option>
        <option>O2</option>
    </select>
</div>
EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2013-02-18 17:41:30

你的代码:

代码语言:javascript
运行
AI代码解释
复制
$('#x select').on('change', function () { alert('helo'); })

将事件处理程序附加到#x元素内的select。

你想要的东西(根据我的理解)是这样的:

代码语言:javascript
运行
AI代码解释
复制
$("#y").on('change','select',function () { alert('helo'); });

这会将一个事件处理程序附加到委托给其子“select”元素的#y元素

来自http://api.jquery.com/on/

.on()方法将事件处理程序附加到jQuery对象中当前选定的元素集。

票数 39
EN

Stack Overflow用户

发布于 2013-02-18 17:38:42

在初始页面加载时,对不在DOM中的元素的事件绑定将不起作用。您需要绑定到DOM中更靠上的元素,以允许事件向下渗透。这通常是我采取的方法:

代码语言:javascript
运行
AI代码解释
复制
$(document).on({
  change: function() {
    alert('helo');
  }
}, '#x select');

$(document).on({
  change: function() {
    alert('helo');
  }
}, '#y select');

我更喜欢它,因为你可以很容易地添加后续事件。

代码语言:javascript
运行
AI代码解释
复制
$(document).on({
  change: function() {
    alert('helo');
  },
  blur: function() {
    alert('helo');
  }
}, '#x select');
票数 14
EN

Stack Overflow用户

发布于 2017-03-14 06:48:08

不过,不要使用.live()/.bind()/.delegate(),。您应该使用.on()

对于静态和动态选择更改

代码语言:javascript
运行
AI代码解释
复制
$(document).on('change', 'select', function (e) {
    // do something 
});
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14942048

复制
相关文章
jquery 用于操作动态元素的delegate/on方法
delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。
全栈程序员站长
2022/11/01
3K0
jquery实现表格动态添加
//点击追加触发 $(function(){ $("#button").click(function(){ var div_ = $("#sel").val(); var context = $("#context").val(); append(div_,context); //$("#tab tr:not(:first)").remove(); //$("#tab tbody").empty(); $("#tab tbody").remove(); query(); }); }); //点击查询全部触发 $(function(){ $("#but").click(function(){ $("#tab tbody").remove(); //$("#tab tr:not(:first)").remove(); //$("#tab tbody").empty(); query(); }); }); //点击模糊查询触发 $(function(){ $("#query").click(function(){ var context = $("#context").val(); alert("您输入的内容为:"+context); $("#tab tr:not(:first)").empty(); //$("table tbody").remove(); queryByContext(); }); }); //删除事件 function del(id){ var url = "testController/delModel"; $.ajax({ type: 'POST', url: url, data:{id: id}, dataType: 'json', success: function(data){ alert("数据库删除成功"); $("#tab tr:not(:first)").empty(); query(); }}); }; //编辑事件 function upd(id){ var url = ""; $.ajax({ type: 'POST', url: url, data:{id: id}, dataType: 'json', success: function(data){ alert("数据库编辑成功"); $("#tab tr:not(:first)").empty(); query(); }}); } //添加方法 function append(div_,context){ $("#"+div_).append("<tr><td>"+ div_ +"</td>"+"<td>"+context+"</td></tr>"); $.get("testController/addModel",{div_id: div_, context: context }).done(function( data ) { alert("添加到数据库成功"); }); }; //模糊查询方法 function queryByContext(){ var url = "testController/queryAllDataByContext"; $.ajax({ type: 'POST', url: url, data:{context:$("#context").val()}, dataType: 'json', success: function(data){ alert("数据库查询成功"); console.log(data); for(var i=0;i<data.length;i++){ var id = data[i].id; var divId = data[i].divId; var context = data[i].context; var dtt = data[i].dtt; //alert(id); $("#tab thead").append("<tr><td>"+id+"</td>"+"<td>"+divId+"</td>"+"<td>"+context+"</td>"+"<td>"+dtt+"</td>"+"<td><a class='del'onclick='del("+id+")'>删除</a></td></tr>"); } }, error:function(){ alert("数据库查询失败"); } }); }; //查询全部方法 function query(){ var url = "testController/queryAllData"; $.ajax({ type: 'POST', url: url, dataType: 'json', success: function(data){ alert("查询成功"); con
yaohong
2019/09/11
3.4K0
cssjshtml jquery向动态生成的元素添加事件
delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。
葫芦
2019/04/17
3.3K0
jquery validate动态添加/删除规则
项目中用到了jquery vilidate插件来校验,使用中遇到点小波折,这里跟大家分享一下,希望大家少走一些弯路。很多使用手册里面都会提到最基本的validate()方法,这个在使用时一般不会出现问题,如果有些小伙伴不想输入完成后立即校验可以通过设置下面这几个属性:
johnhuster的分享
2022/03/28
2K0
jQuery动态添加/删除元素及内容
添加新的 HTML 内容,四种方法:可根据上面的图片来区分四种方法插入元素的位置。
德顺
2019/11/12
7.3K0
jquery 动态添加一行数据,支持动态删除
<tr id="templateTr" style="display: none;"> <td>联系人</td> <td><input type="text" name="conName" disabled="disabled" style="border: 0; background: #fff;box-shadow: none;cursor:text;" class="form-control" ></td> <td>部门</td> <td><input type="text" name="conDepart" disabled="disabled" style="border: 0; background: #fff;box-shadow: none;cursor:text;" class="form-control" ></td> <td>联系电话</td> <td><input type="text" name="conTel" disabled="disabled" style="border: 0; background: #fff;box-shadow: none;cursor:text;" class="form-control" ></td> <td>邮箱</td> <td><input type="text" name="conEmail" disabled="disabled" style="border: 0; background: #fff;box-shadow: none;cursor:text;" class="form-control" ></td> <td><button type="button" class="button2 delrow">删除</button></td> </tr>
用户5640963
2019/07/25
2.8K0
如何解决jQuery Validation针对动态添加的表单无法工作的问题?
为了充分利用ASP.NET MVC在服务端呈现HTML的能力,在《利用动态注入HTML的方式来设计复杂页面》一文中介绍了,通过Ajax调用获取HTML来呈现复杂页面中某一部分界面的解决方案。我们知道ASP.NET MVC默认集成了jQuery Validation,但是对于通过JavaScript动态添加的表单,客户端验证默认情况下是失效的。 还是以前文涉及的“联系人管理”为例,在一个ASP.NET MVC应用中定义了如下两个类型,Contact封装联系人信息,HomeController包含三个Actio
蒋金楠
2018/01/15
2.1K0
如何解决jQuery Validation针对动态添加的表单无法工作的问题?
jQuery实现动态添加和删除(点击按钮添加在页面添加和删除元素)
1:点击添加按钮弹出弹框,form表单可以填写相关的信息 2:点击保存按钮,相关信息会显示在界面的列表里
王小婷
2019/02/26
7.5K0
PCA不适用于时间序列分析的案例研究
在大部份情况下我们都可以使用 PCA 进行线性降维。从图像处理到非结构化数据,无时无刻不在。我们甚至可以将它用于时间序列分析,虽然有更好的技术。在这篇文章中,我想向您介绍动态模式分解 (DMD),这是一种源自我的研究领域:流体动力学的用于高维时间序列的线性降维技术。DMD 结合了两个世界中的优点:PCA 和傅立叶变换。在数学上,它与动力系统理论中的一个基本算子有关,称为 Koopman 算子。但在深入研究 DMD 的数学之前,让我们用一个相当简单的例子来说明为什么 PCA 不是高维时间序列分析的最佳选择。
deephub
2021/07/23
1.6K0
PCA不适用于时间序列分析的案例研究
碎片的动态添加
碎片的动态添加 1.添加another_right_fragment.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:a
Dream城堡
2018/12/14
2.2K0
碎片的动态添加
jQuery添加dom节点的方法
一、内部插入DOM: 完整示例1: <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>jQuery添加dom节点方法一 -青梅博客</title> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script> </head> <body> <div class="box"> <span>青梅煮码</span> </div>
青梅煮码
2023/01/16
1.6K0
回波总 - 为什么我不赞同你关于 ANTLR 不适合模板引擎的意见
在谈谈我对 JFinal Marketing 的一些看法那篇博文的评论中 我们谈论到了 ANTLR, 这里继续和波总谈谈在技术上我对这方面的理解.
老码农
2019/12/24
1.1K0
HTML中给导航栏动态添加active(jQuery方式)
方式一:找到 url和标签的对应关系,直接通过 id定位的方式给标签加上 active
岳泽以
2023/04/08
3.2K0
jQuery用于请求服务器的函数
jQuery为我们包装简化了常用的请求方法,其中有一个post方法,此方法可以通过 HTTP POST 请求从服务器载入数据。 语法:
端碗吹水
2020/09/23
4.4K0
jQuery用于请求服务器的函数
【Nginx】如何为已安装的Nginx动态添加模块?看完我懂了!!
作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:
冰河
2020/10/29
3.6K0
为什么Python不适合写游戏?
Python作为脚本语言,一般很少用来开发游戏,但也有不少大型游戏有Python的身影,比如:
派大星的数据屋
2023/02/23
1.4K0
为什么Python不适合写游戏?
jQuery 动态绑定
这是在项目过程中所遇到的一个问题,给 JS 动态生成的元素绑定事件失效,代码如下所示:
Nian糕
2018/08/21
2K0
jQuery 动态绑定
为什么Redis的消息机制不适合实现延时队列?
后面了解到包括Java单机版的DelayQueue以及RabbitMQ延时队列/延迟重试等相对更靠谱一些。
明明如月学长
2021/08/31
8750
为什么Redis的消息机制不适合实现延时队列?
关联规则算法Apriori algorithm详解以及为什么它不适用于所有的推荐系统
Apriori是Agarwal和Srikant在1994年首次提出的一种关联规则挖掘算法,它可以在特定类型的数据中找到关系,并将其表示为规则。关联规则挖掘最常用于营销,特别是在购物车的上下文中。这个应用领域被正式称为“购物车分析”。
deephub
2022/11/11
1.5K0
关联规则算法Apriori algorithm详解以及为什么它不适用于所有的推荐系统
Js - JQ事件委托( 适用于给动态生成的脚本元素添加事件)
最近一段时间打了一个大仗,现在总算消停点,才有时间来做个总结吧算是: 移动端遇到一个项目,是一个列表的侧滑栏,在我这里用jq写的交互事件。自测各方面都挺好的,美滋滋的给了研发。研发也美滋滋的开始开发。 但是,好景不长。。。 研发加了ajax事件后,我的交互效果有部分受了影响! 一个小姑娘,在一群大老爷们研发堆里,对着昏暗的电脑和看不太懂的后台代码,改了半天。最后没解决。我就回来了。 后来就找共同点,发现有个类名控制的交互都不能实现,最后去问研发,你是不是没加上我的类名? 回:加着呢啊!我一看模拟器,确实加着
xing.org1^
2018/05/17
5K0

相似问题

为什么jQuery remove不适用于动态添加的行?

20

Jquery不适用于动态添加的DIVS

24

JQuery .remove()不适用于动态添加的元素

21

jQuery插件不适用于动态添加的元素

48

jQuery .on()事件不适用于动态添加的元素

36
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档