给Jquery动态添加的元素绑定事件

OLED 驱动模块程序代码 作为嵌入式软件开发,可能经常会使用单片机连接驱动显示屏,实现人机交互的功能,通常可选择的有 OLED 和 LCD 等,其中相关驱动代码例程网上更是数不胜数。 本文介绍的是 OLED, 常见代表有 0.96 寸的OLED,网上也有很多相关的驱动代码,但是大部分代码都是能用即可,不是特别关注驱动代码的整体架构,以下是个人整理的 OLED 驱动代码,支持配置 SPI 和 IIC 两种接口方式(目前只是测试了 SPI,IIC 有待验证)。 阅读详情

给Jquery动态添加的元素绑定事件

我想很多人都会向我一样曾经 被新元素的事件绑定困惑很久也就是

在页面加载完成后给元素绑定了事件,但又新增加的元素上却没有绑定任何事件。

js的事件监听跟css不一样,css只要设定好了样式,不论是原来就有的还是新添加的,都有一样的表现。而事件监听不是,你必须给每一个元素单独绑定事件。

常见的例子是处理表格的时候。每行行末有个删除按钮,点了这个能够删除这一行。

<table>
    
<tbody>
        
<tr>
            
<td>这行原来就有</td>
            
<td><buttonclass="del">删除</button></td>
        
</tr>
        
<tr>
            
<td>这行原来就有</td>
            
<td><buttonclass="del">删除</button></td>
        
</tr>
    
</tbody>
</table>

通常,我会这么绑定

  • jQuery(function($){
  •    //已有删除按钮初始化绑定删除事件
  •     $(".del").click(function() {
  •         $(this).parents("tr").remove();
  •    });
  • });

    对于在domready之前就存在的删除按钮,一切都很完美。但如果在domready之后用js动态添加几行,那新增的几行中的这些按钮都将失去任何作用。

    如何解决这个问题?以下提供4种解决方案:
    =============================

    1号解决方案——onclick法

    如果不顾结构与行为分离的准则的话,通常,我会这么做。
    注意,此时的deltr这个function必须是全局函数,得放jQuery(function($) {})外面,放里边就成局部函数了,html里的onclick就调用不到了!

    1. <td><buttononclick="deltr(this)">删除</button></td>
    1. jQuery(function($){
    2.    //添加行
    3.     $("#add2").click(function(){
    4.         $("#table2>tbody").append('<tr><td>新增行</td><td><button onclick="deltr(this)">删除</button></td></tr>')
    5.    });
    6. });
    7. //删除行的函数,必须要放domready函数外面
    8. function deltr(delbtn){
    9.     $(delbtn).parents("tr").remove();
    10. };

    =============================

    2号解决方案——重复绑定法

    即,在domready的时候就给已有的元素绑定事件处理函数,
    而后当新增加的元素的时候再次绑定。

    1. <td><buttonclass="del">删除</button></td>
    1. jQuery(function($){
    2.    //定义删除按钮事件绑定
    3.    //写里边,防止污染全局命名空间
    4.    function deltr(){
    5.         $(this).parents("tr").remove();
    6.    };
    7.    //已有删除按钮初始化绑定删除事件
    8.     $("#table3 .del").click(deltr);
    9.    //添加行
    10.     $("#add3").click(function(){
    11.         $('<tr><td>新增行</td><td><button class="del">删除</button></td></tr>')
    12.            //在这里给删除按钮再次绑定事件。
    13.             .find(".del").click(deltr).end()
    14.             .appendTo($("#table3>tbody"));
    15.    });
    16. });

    =============================

    3号解决方案——事件冒泡法

    利用事件冒泡的原理,我们给这个按钮的祖先元素绑定事件处理函数。
    然后通过event.target这个对象来判断,这个事件是不是我们要找的对象触发的。
    通常可以利用一些DOM属性,比如event.target.className、event.target.tagName等之类的来判断。

    1. <td><buttonclass="del">删除</button></td>
    1. jQuery(function($){
    2.    //第四个表格的删除按钮事件绑定
    3.     $("#table4").click(function(e) {
    4.        if (e.target.className=="del"){
    5.             $(e.target).parents("tr").remove();
    6.        };
    7.    });
    8.    //第四个表格的添加按钮事件绑定
    9.     $("#add4").click(function(){
    10.         $("#table4>tbody").append('<tr><td>新增行</td><td><button class="del">删除</button></td></tr>')
    11.    });
    12. });

另外,可以使用on进行绑定,如下:
$(document).on('click','.name', function() {
//处理代码
});

修改动态添加元素的样式或事件:由于ajax是异步的,如果你的方法和ajax在同一级,ajax还没接到返回结果,就已经执行了你那个方法了,所以你要把你的的方法放到ajax()的success里面。也可以在ajax()的success里把要获取的元素设置为全局变量,用来在外部事件中调用。
  • jQuery(function($){
  •    //已有删除按钮初始化绑定删除事件
  •     $(".del").click(function() {
  •         $(this).parents("tr").remove();
  •    });
  • });
通过Power Platform自定义D365 CE 业务需求 - 4. 使用Power Automate Power Automate构建块Power Automate中的连接器流的类型和用途流中的动态值和表达式使用变量、循环和条件在Power Automate中处理审批业务场景、用例和实现Power Virtual Agent的概念Power Virtual Agent的构建块配置Power Virtual Agent示例在公共网站/门户中部署Power Virtual Agent业务场景、用例和实现。 阅读详情

相关推荐

Vivado新手避坑指南:搞懂Generate Output Products和Create HDL Wrapper到底在干啥

本文深入解析Vivado设计流程中的Generate Output Products和Create HDL Wrapper两大关键步骤,帮助新手理解其核心功能与操作要点。通过详细讲解文件生成类型、关键选项设置及常见问题解决方案,指导开发者正确使用这两个功能,避免设计流程中的常见错误,提高FPGA开发效率。

weixin_29207149的博客 311

jquery添加click事件,jq动态添加click事件多种方式分享

目录: 添加方式 实例演示 其中方式有一下几种 $("#ImId1").click(function(){}); $("#ImId2").bind("click",function(){}) $("#ImId3").on("click",function(){}) $("body").delegate("#xxx","click",function(){}) 实例演示: 导入jq <script type="text/javascrip...

请告诉他 6308

从零到一:构建嵌入式Arm-Linux的Qt MQTT通信框架全指南

本文详细指导如何在嵌入式Arm-Linux平台上从零构建Qt MQTT通信框架,涵盖交叉编译、环境配置、依赖库管理及性能优化。重点针对32位Arm架构,提供完整的工具链配置、编译步骤和实战部署方案,适用于物联网和工业控制等场景。

w8x9y0z1的博客 1000

jquery中的 delegate 可以让 代码中动态加入td元素,同样会被赋予单击事件!

如果要给td添加click事件,传统做法jQuery("td").click(function(){ //code.....});事件委托方式,委托给table:jQuery("table").delegate("td","click", function(){   jQuery(this)......... //其中jQuery(this)就是td对象。}); 事件委托方式有两个好处,第一效

ninejj的专栏 521

PSM倾向匹配详细步骤和程序

目录1.安装psmatch2统计包。2.数据准备3.数据分析及命令解读4.结果解读4.1模型拟合结果,此处无太多实际意义。4.2试验组可匹配的观测概览,按照命令中设定的匹配规则,试验组有8例患者未能匹配到合适对照。4.3结果解读的重点应该是对stata新生成的中间变量的解读。4.4均衡性检验结果4.5匹配结果的图示化5.Stata命令汇总最后留下两个问题给大家思考:题目 试验设计中,匹配的目的在于确保干预效应估计是建立在可比个体之间的不同结果的基础上。最简单的匹配方式是将干预组和对照组中协变量值相同的两个个

平平淡淡,戒急用忍,一生学闭嘴。 5万+

FreeCAD MCP实战:用AI自然语言驱动CAD建模与自动化

在计算机辅助设计(CAD)领域,参数化建模和自动化脚本是提升设计效率的核心技术。其原理在于通过程序化指令控制三维模型的创建与修改,从而将设计意图转化为精确的几何实体。这种技术价值在于显著降低重复性操作成本,实现快速原型迭代和设计探索。在应用场景上,它尤其适用于需要频繁调整尺寸、生成系列化零件或执行规则化建模任务的工程与产品设计。本文聚焦的FreeCAD MCP项目,正是这一理念的先进实践。它通过集成Model Context Protocol(MCP),构建了一个连接Claude AI与FreeCAD的智能

weixin_26913055的博客 726

jquery动态添加元素和动态添加click事件

文章目录1.动态追加HTML元素2.获取HTML已有元素3.静态元素添加点击事件4.动态创建btn并添加事件5.不好使的原因6.动态创建的元素添加click事件正确姿势 1.动态追加HTML元素 function appendText() { var txt1 = "&lt;p&gt;Text.&lt;/p&gt;"; // Create element with...

my_live_123 7161

知识图谱设计简记

知识图谱是一种语义化的知识表示框架,通过实体-关系-属性三元组形式表达现实世界关联。其核心价值在于关联化整合数据、支持可解释性推理和赋能智能化应用。知识图谱可分为通用型和领域型两类,基本构成包括实体、关系、属性等基础元素,以及本体和实例等架构层元素。设计方法主要有自上而下、自下而上和混合式三种,需遵循业务导向、一致性等原则。在建模时需要明确属性与实体的判断标准,规范处理关系的方向性与对称性,并合理构建多重关系。主流技术框架如RDF和属性图体系均支持多重关系建模,选择需考虑业务需求。本体作为知识图谱的概念骨架

生活在别处 360

jquery动态添加表格数据注册事件无效的处理办法

今天在做分页的时候遇到了一个问题,就是append动态添加的tr行实现表格行添加,但是在删除某一行的时候发现注册的jquery事件不好使了,可原来静态的时候明明是好使的。经过一番寻找,终于明白了怎么回事,其实就是执行顺序的问题。 原因:append中的节点是在整个文档加载完之后开始添加,因此页面不会为append的元素初始化添加点击事件 解决办法:使用事件委托的方式,将指定的事件绑定在docu...

韦_恩的博客 768

【AI应用实战-WorkBuddy】WorkBuddy 能帮你做什么(一)

文章摘要: WorkBuddy是一款AI工作助手,专为提升效率而设计,适用于经常处理文档、代码、数据分析等重复性任务的职场人士。它能通过自然语言交互快速完成五大核心场景任务: 周报撰写:输入工作要点,10分钟生成专业周报; 代码调试:解析报错信息,3分钟提供解决方案; Excel分析:自动计算数据趋势并生成图表和结论; 自动化脚本:将重复流程转为脚本,节省98%时间; 文档生成:根据代码自动补充README、API文档和注释。 效果对比:传统手动操作耗时1-3小时的任务,WorkBuddy可将时间缩短至10

351

系统安全性评估 (SSA) 详细解析

系统安全性评估(SSA)是一种自下而上的验证过程,目的是确保系统设计中的每个功能、子系统、硬件和软件的实现,符合早期通过 FHA 和 PSSA 设定的安全性需求。它通过对已实现的系统进行系统性综合评价,检验各项设计和安装是否符合预期的安全性目标,最终支持飞机的适航认证。飞行控制系统是飞机安全性设计的核心子系统之一,负责控制飞机的姿态和方向。为了确保飞行控制系统能够在各种飞行条件下保持安全运行,SSA 被用于验证该系统的设计是否满足 FHA 中设定的安全性目标。

qq_41854911的博客 1651

JQuery关于如何为动态添加元素绑定事件

JQuery关于如何新增元素绑定事件 事例如下: 头部: <head> <meta charset="UTF-8"> <title></title> // ==================style可以忽略,这里只是为了能够看清做的简单样式================ <style> div{ mar...

码农米格的博客 810

linux 内核OOM问题定位-SLAB_DEBUG

首先看slabinfo按的size排序查看 slub object,可以查看 space 总占用大小,及objects个数判断泄漏点 为kmalloc-128。那个泄露多看/sys/kernel/debug的slab/kmalloc*-的alloc-traces和free-traces。SLAB或者SLUB有一个用就可以,改menuconfig没有clean会覆盖之前的更改,现在看一下编译的过程。或者配置defconfig,配置完之后需要clean后再编译。1,配置menuconfig。

陌上花开缓缓归以的博客 899

jquery动态添加元素事件绑定与获取

jquery动态添加元素时间绑定与获取 关于为动态添加的元素添加绑定事件网上有很多的文章,介绍的很详细,下面是主要代码: html: <div id="i_fileusers"> <table id="table_limit" ></table> </div> 动态添加: $.ajax({ url:"/sysManage/getFileLi...

u014337925的博客 925

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

jquery html 动态添加元素绑定事件

                                                                 jquery html 动态添加元素绑定事件 点击表格每一行,弹出消息提醒。如果我们用js给表格添加一行,新添加的行点击事件失效。 当需要的内容还没有被插入时,选择器只会选择页面中已经存在的元素,所以事先没有存在元素是绑定不了事件的。 参考:jquery html ...

夏已微凉、 1135

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

jquery动态添加html事件,JQuery给动态添加的元素绑定事件的方法

今天有位墨初VIP主题的使用者,给我反馈了一个主题中的BUG。就是主题的评论滑块在回复的时候,无法滑动(当然这个问题已经修复),回来经过反复的查找,终于确定了,在评论回复自动创建的DIV元素中,无法绑定JQ事件,也就是说js无法监听到动态创建出来的元素,无法给他们绑定事件。下面就说一说,如何给动态创建的元素添加绑定事件。JQ中live()的方法在JQ1.7版本以前,有个live()方法live()...

weixin_42305163的博客 758

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Jquery动态添加元素无法绑定事件

Jquery动态添加元素无法绑定事件 通常我们使用jquery绑定事件时: $(function(){ $(.ss").click( function(){ window.location="/tourtravel1/order.jsp"; }); }); 如果我们添加的元素是jquery添加的动态元素应该: $(function(){ $(document).on('click',...

weixin_44172800的博客 343

jQuery-为动态添加的元素绑定事件

在使用jquery的方式为元素绑定事件时,我经常使用bind或者click,但这只能为页面已经加载好的元素绑定事件。像需要用ajax的方式请求远程数据来动态添加页面元素时,显然以上几种绑定事件的方式是无效的。$("#searchMoveVideoResult ul li").bind("click",function(){ $(this).css("border","5px solid #000

H小志 7万+

jquery学习笔记之动态添加元素绑定事件

这两天做项目涉及到页面上的设计,用到一些jquery,记录一下学习的成果。都是一些小的零散的知识点,大神不要见笑。 1.jquery动态添加元素时需要绑定事件。demo如下: 没有绑定事件时: $(document).ready(function(){ $("#addBtn").click(function(){ //点击之后在content DIV中添加

十七 意林 538

jQuery中对动态添加的元素绑定事件

在对元素绑定事件时可能会出现没有效果的情况,这个时候就需要考虑,你绑定的元素是否是动态添加的,动态数据也就是使用jQuery添加的数据,下面就是针对动态数据绑定事件的解决方法;

weixin_66990569的博客 4771

jQuery -- 如何为动态添加的元素绑定事件处理函数

<br />有一段时间没用jquery了,今天又碰到这个问题。当时是知道有livejquery可以解决。但是我并不喜欢为了这个而另外加载一个。我当时的处理方法是在添加的时候手工绑定事件处理函数。不过新版的jquery已经添加了这个功能。我们已经不需要为此烦恼了。<br /> <br />参考:http://api.jquery.com/live/<br /> <br />以前我们定义事件,比如为元素定义单击事件是这样写的:<br /> <br />$('input').click(function () {

magento网站建设,magento模板开发,magento支付模块 1万+

【笔记】jQuery中动态添加的元素事件绑定

on()与delegate()给动态添加的元素绑定事件

小灯博客 555

JQuery给动态添加的元素绑定事件

jquery中绑定事件一般使用bind、on或者click,但是这只能是对已经加载好(HTML中创建的元素)的元素定义事件,但很多时候我们需要对都来动态添加(创建)的元素绑定某些事件。在JQ1.7版本以前使用可以通过live。但是在1.8版本以后推荐使用on。这里介绍jQuery中如何给动态添加的元素绑定事件 在实际开发中会遇到要给动态生成的html元素绑定触发事件的情况 例如: $(".Lis

Call_me_small_pure的博客 3021

jquery 动态添加的元素,绑定的事件不生效

jquery 动态添加的元素,绑定的事件不生效

猎人在吃肉 2333

jQuery 为动态添加的元素绑定事件处理函数

对于页面中动态添加的元素,由于是在页面加载完成后添加的,因此页面加载时无法给其绑定事件处理函数, csdn上的一篇文章让我明白了如何做到动态绑定 http://blog.csdn.net/xinhaozheng/article/details/5862109 $(".RemoveLink").live("click",function () { ...

175

jquery动态添加的元素,on绑定click事件不作用

真真实痛苦了,之前测试的时候明明也是这样写的是可以的,后来就莫名其妙的不可以了,不可以了怎么办,盘他,至于原因就随风吧,找不到之前为什么可以。 解决:on方法中要找到原选择器(如例.info),再找到动态添加的选择器(如列.delete)。 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http:...

weixin_38169927的博客 295
上一篇: 七牛首席布道师:Go不是在颠覆,就是在逆袭
下一篇: 浏览器加载js的阻塞与非阻塞
csdn265
博客等级 码龄11年 109粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值