博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JQuery中动态生成元素的绑定事件(坑死宝宝了)
阅读量:6158 次
发布时间:2019-06-21

本文共 1007 字,大约阅读时间需要 3 分钟。

今天在做项目的时候,遇到了一个前端的问题,坑了我好长时间没有解决,今天就记录于此,也分享给大家。

问题是这样的,首先看看我的界面,有一个初始印象:

下面是操作列所对应的JS代码:

{
"data": function (datas) { return " 编辑" +
" 删除";}

.cshtml页面上最后生成的modal窗口生成的区域定义:

操作modal模态窗口的JS的最终脚本为:

//ajax demo:var $modal = $('#ajax-modal');$(document).on('click', '.ajax-demo', function () {
// create the backdrop and wait for next modal to be triggered  $('body').modalmanager('loading');  var el = $(this);  setTimeout(function(){      $modal.load(el.attr('data-url'), '', function(){      $modal.modal();    });  }, 1000);});

这里,稍稍解释一下:看到动态生成“编辑”按钮的JS脚本中的a标签中的class有一个ajax-demo没有(我已用红色字体标出)?其实这个类没有任何样式,只是一个标识类。其次,在操作modal的脚本中,先获得模态窗口要显示的区域,然后将含有“ajax-demo”类的元素绑定到click事件。这里要讲的主要的坑爹问题是绑定事件的问题。

一开始是这么写的,没有获取到元素,因而没有执行绑定的click事件。

$('.ajax-demo').on('click', function() {......});

接下来,搜索问题,搜索到如下感觉比较靠谱的答案:

还是最后一个答案起了作用,首先,给了我一个不一样的写法的提示;其次,on,live以及bind都试过了,只有live没有绑定到click事件,bind虽然也绑定到click事件了,但是半天加载不出异步请求的数据,只有on让人满意。

第一个是使用on绑定click事件的效果,第二个是bind绑定click事件的效果,bind最终是没有加载出ajax内容。

转载地址:http://gpifa.baihongyu.com/

你可能感兴趣的文章
Javascript一些小细节
查看>>
禁用ViewState
查看>>
Android图片压缩(质量压缩和尺寸压缩)
查看>>
nilfs (a continuent snapshot file system) used with PostgreSQL
查看>>
【SICP练习】150 练习4.6
查看>>
HTTP缓存应用
查看>>
KubeEdge向左,K3S向右
查看>>
DTCC2013:基于网络监听数据库安全审计
查看>>
CCNA考试要点大搜集(二)
查看>>
ajax查询数据库时数据无法更新的问题
查看>>
Kickstart 无人职守安装,终于搞定了。
查看>>
linux开源万岁
查看>>
linux/CentOS6忘记root密码解决办法
查看>>
25个常用的Linux iptables规则
查看>>
集中管理系统--puppet
查看>>
分布式事务最终一致性常用方案
查看>>
Exchange 2013 PowerShell配置文件
查看>>
JavaAPI详解系列(1):String类(1)
查看>>
HTML条件注释判断IE<!--[if IE]><!--[if lt IE 9]>
查看>>
发布和逸出-构造过程中使this引用逸出
查看>>