首页 > 其他分享 >JQuery动态生成的按钮无法触发问题与解决方法

JQuery动态生成的按钮无法触发问题与解决方法

时间:2023-01-31 10:22:25浏览次数:44  
标签:JQuery 触发 uid replace userList status 按钮 let td

JQuery动态生成的按钮无法触发问题与解决方法

起因:

利用JQuery动态添加的按钮无法通过$(selector).click方法触发点击事件

//在网页加载完成后动态添加表格
$(function () {
    //通过Ajax向后台请求程序
   $.ajax({
     method : "post",
     url : "all-user",
     dataType : "json",
       success: function (data) {
           const userList = data;
	//遍历结果集
           for (let i = 0; i < userList.length; i++){
               let uid = userList[i].uid
               let upd = '<button value="'+uid+'" class="upd-btn">修改</button>'
               let del = '<button value="'+uid+'" class="del-btn">删除</button>'
               let status = ""
               if (userList[i].status == 0){
                   status = "审核中"
               }else if (userList[i].status == 1){
                   status = "审核通过"
               }else if (userList[i].status == 2){
                   status = "审核被拒绝"
               }
		//添加模板
               let td = "<tr>"+
               "<td>#{uid}</td>"+
               "<td>#{username}</td>"+
               "<td>#{password}</td>"+
               "<td>#{status}</td>"+
               "<td>#{update}</td>"+
               "<td>#{delete}</td>"+
               "</tr>"
		//填充参数
               td = td.replace(/#{uid}/g,uid)
               td = td.replace(/#{username}/g,userList[i].username)
               td = td.replace(/#{password}/g,userList[i].password)
               td = td.replace(/#{status}/g,  status)
               td = td.replace(/#{update}/g,  upd)
               td = td.replace(/#{delete}/g,  del)
               //.append追加
               $("#tb").append(td)
            }
       }
   })
    //编写按钮的点击事件,使用.click()方法,按钮点击后没有反应
  $(".del-btn").click(function () {
	  alert(this.value)
  })
 })

## 原因:
> append中的节点是在整个文档加载完之后开始添加的,
> 因此页面不会为append的元素初始化添加点击事件


## 解决方法:

> 使用$(document).on()方法添加点击事件

```js
$(document).on("click",".del-btn",function (){
     
 })

标签:JQuery,触发,uid,replace,userList,status,按钮,let,td
From: https://www.cnblogs.com/saffeer/p/17078081.html

相关文章

  • 纯css3D按钮多种悬停特效
    效果如下代码演示地址CSS代码如下 body{background:#e0e5ec;}h1{position:relative;text-align:center;color:#353535;font-size:50px;font-family:......
  • idea测试类没有运行按钮,右键没有Run、Debug
    问题  原因编写测试类错误解决办法选择合适的路径 ......
  • AJAX jQuery发送jsonp请求
    视频HTML<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><ti......
  • jQuery基础学习随笔 2023
    jQuery多库共存//1.如果$符号冲突,就使用jQueryconsole.log(jQuery("div"));//$("div")//......
  • JQuery概念以及快速入门
    JQuery概念概念:一个JAVAScript框架jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(框架)。jQuery设计的宗旨是“writeLes......
  • jQuery中AJAX(通用型方法ajax)
    视频HTML<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><ti......
  • jQuery中AJAX(GET&POST)
    视频HTML<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><ti......
  • jQuery_1_封装原理
    jQuery是使用JavaScript 编写的函数库,用于简化了JavaScript编程。 问题:在一个页面中,无论是引入外部的js代码,还是内部分开写的js代码块,在此页面解析执行的时候,......
  • vue3实现禁用物理按键返回,但是可以通过自定义app-bar的返回按钮返回
    1.注意app-bar是一个所有页面都会用到的顶部title栏,里面左侧有返回按钮;2.基于1,在app-bar组件的setup里添加这个代码:onMounted(()=>{//不能少history.pu......
  • 13.1 SQL Server触发器
    SQLServer触发器(Triggers)目录SQLServer触发器(Triggers)简介创建AFTER触发器(DML)简介SQLServerCREATETRIGGER语句触发器的“虚拟”表:INSERTED和DELETED创建触发器......