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

pytorch中dataloader的num_workers参数 结论速递 在Windows系统中,num_workers参数建议设为0,在Linux系统则不需担心。 1 问题描述 在之前的任务超大图上的节点表征学习中,使用PyG库用于数据加载的DataLoader,ClusterLoader等类时,会涉及到参数num_workers。在不同系统环境试验该参数的设定值时,会出现不同的结果 colab(Linux),设为12 有warning message,提示num_workers参数设置不合理,不影响继续运行 /usr/local/lib/python3.7/di 阅读详情

给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();
  •    });
  • });
避坑指南:ZYNQ平台上AXI 1G/2.5G Ethernet Subsystem实现IEEE1588的5个关键点 本文详细解析了在ZYNQ平台上使用AXI 1G/2.5G以太网子系统实现IEEE1588精密时间协议(PTP)的5个关键避坑点。从硬件选型、Vivado工程配置到Linux驱动适配,提供了实战经验与优化技巧,帮助工程师在工业自动化、电力系统等场景中实现纳秒级时间同步。 阅读详情

相关推荐

发那科机器人抓手与物料搬运阀的配置与优化实践

本文详细介绍了发那科机器人抓手与物料搬运阀的配置与优化实践,包括基础配置指南、阀岛与输入模块的详细设置、测试程序编写与验证技巧,以及常见问题排查与性能优化建议。通过实际案例和经验分享,帮助技术人员快速掌握关键配置步骤,提升物料搬运系统的稳定性和效率。

weixin_33738555的博客 385

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

activemq_CVE-2015-5254_漏洞复现_源码分析

ActiveMQ-CVE-2015-5254

qq_51550750的博客 940

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

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

ninejj的专栏 521

Tushare Pro的安装使用——“抱歉,您没有访问该接口的权限,权限的具体详情访问:https://tushare.pro/document/1?doc_id=108”问题

最近做毕设关于量化交易的, 因此一直使用tushare作数据源,但是过程中到一些问题,因此这里写篇文章,供大家一起交流下。 Tushare简介 Tushare是一个免费、开源的python财经数据接口包。拥有如股票、基金、期货等行情数据,公司财务、基金经理等基本面数据,以及债券、外汇、行业、大数据、区块链。Tushare返回的绝大部分的数据格式都是pandas DataFrame类型,因此非常方便...

sinat_40875078的博客 1万+

传统芯片封装工艺流程简介

塑封是将工件和树脂安装在模具中,加热模具,使树脂液化充满模具,降温保持一定时间后,树脂凝结为固态即可取出。它将一个大的晶圆切割成许多单独的小块,每个小块是一个“芯片”(Chip,die),这些芯片是单个集成电路的基本单位。对裸露在外的引线框架外脚电镀Sn-Pb合金,这样不仅可以提高外脚的抗氧化性,还有利于后续与印刷电路板的焊接。导电胶粘贴法:将含有银粉的环氧树脂(银浆)涂敷在框架或基板上,再将芯片放置其上,固化后可以将芯片牢牢粘接。引线框架的各腿是用筋连接着的,起支撑作用,塑封固化后,需要将其连筋切掉。

芯想是陈的博客 3190

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

YOLOv5 自定义模型 Android 部署完整指南

本文详细介绍了将YOLOv5模型部署到Android设备的完整流程,包含三个核心部分:首先验证官方模型测试,确保基础环境配置正确;随后进行模型转换,从PyTorch导出ONNX格式并优化,再转换为NCNN格式;最后在Android项目中集成自定义模型,包括文件替换、参数修改和代码适配。教程基于YOLOv5 6.1版本,使用NCNN框架进行移动端推理,涵盖了常见问题解决方案和关键配置要点,为开发者提供了从训练到部署的完整技术路线。

FJN110的博客 592

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

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

韦_恩的博客 768

Nvidia Jetson平台 JP4.2.1版本GStreamer视频采集异常问题调试记录

Nvidia Jetson平台GStreamer in JP4.2.1不能采集但是 v4l2-ctl和 ffmpeg能正常采集视频。

jzwjzw19900922的博客 2124

华为OD新系统机试真题-文章特征提取

华为OD机试新系统真题 【文章特征提取】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD新系统机试真题【文章特征提取】

qq_45776114的博客 731

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

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

码农米格的博客 810

Vue - 在纯 HTML 普通项目中实现组件化,让原生 html 项目支持引入 *.vue 组件 / 组件与组件间的互相引用等,完美解决了引入组件出现的跨域问题(保姆级详细教程,完整示例源码及插件)

html中使用vue组件,在HTML页面中引入vue组件,HTML界面利用http-vue-loader.js以组件方式引入vue文件,使用http-vue-loader引入组件出现报错,在html页面使用http-vue-loader插件引入组件报跨域错误,如何解决http-vue-loader引用组件时出现跨域问题,纯html原生web项目引入vue后如何实现组件引入,使用http-vue-loader插件控制台报错跨域,http-vue-loader跨域怎么办官方文档,html页面如何引入.vu

🏆 前端领域优质创作者 3907

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

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

u014337925的博客 925

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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

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

夏已微凉、 1135

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

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

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

weixin_42305163的博客 758

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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、付费专栏及课程。

余额充值