js动态替换数据的点击事件
做项目时遇到的,具体是界面如下图:当点击X号时,出现删除、取消按钮,当点击删除时,这一行删除,当点击取消时又恢复到初始状态。
需要关注的问题是,js动态添加的删除、取消按钮的点击事件。当点击取消时恢复到初始状态的X号的再点击事件。

html代码如下:
<div id="mydiv" class="slide-menu">
<ul class="slide-list">
<li><a href="javascript:void(0)" class="menuSlide selected"><span></span>群组一<i> ×</i></a></li>
<li><a href="javascript:void(0)" class="menuSlide"><span></span>群组二<i> ×</i></a></li>
<li><a href="javascript:void(0)" class="menuSlide "><span></span>群组三<i> ×</i></a></li>
<li><a href="javascript:void(0)" class="menuSlide addgroup"><span></span>+</a></li>
</ul>
</div>
js代码如下:
//群组管理弹框左侧的删除群组的操作
$("#mydiv").on('click',"i",function(){
var par=$(this).parent();
$(this).parent().parent().animate({marginLeft:"-30px"},300);
$("<div class='right'><em>删除</em><em>取消</em></div>").replaceAll($(this));
par.find("em").on('click',function(){
if($(this).html()=='删除'){
$(this).parent().parent().parent().remove();
}
else{
$(this).parent().replaceWith("<i> ×</i>");
par.parent().animate({marginLeft:"0px"},300);
}
})
});
当初写的时候问题是卡在点击取消时恢复到初始状态的X号后再点击没反应。当时的写法是$("#mydiv").find("i").on('click',function(){})。这样再点击X号时它不会给i附加click事件的,所以正确的写法应该是将i放在on的括号内写,这样就能找到i然后添加click事件。
js动态替换数据的点击事件的更多相关文章
- 解决jQuery ajax动态新增节点无法触发点击事件的问题
在写ajax加载数据的时候发现,后面添加进来的demo节点元素,失去了之前的点击事件.为什么点击事件失效,我们该怎么去解决呢? 其实最简单的方法就是直接在标签中写onclick="" ...
- 抓取Js动态生成数据且以滚动页面方式分页的网页
代码也可以从我的开源项目HtmlExtractor中获取. 当我们在进行数据抓取的时候,如果目标网站是以Js的方式动态生成数据且以滚动页面的方式进行分页,那么我们该如何抓取呢? 如类似今日头条这样的网 ...
- js动态生成数据列表
我们通常会使用table标签来展示数据内容,由于需要展示的数据内容是随时更换的,所以不可能将展示的数据列表写死在html写死在页面中,而是需要我们根据后台传来的数据随时更换,这个时候就需要我们使用js ...
- (转载)js(jquery)的on绑定点击事件执行两次的解决办法
js(jquery)的on绑定点击事件执行两次的解决办法—不是事件绑定而是事件冒泡 遇到的问题:jquery中用.on()给页面中新加的元素添加点击事件时,点击事件源,绑定的事件执行两次,这里的ale ...
- JS实现按下按键触发点击事件
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- js中 ajax动态新增节点无法触发点击事件
在写ajax加载数据的时候发现,后面添加进来的demo节点元素,失去了之前的点击事件. 其实最简单的方法就是直接在标签中写onclick="",但是这样写有些场景的是实现不了的,最 ...
- JS动态添加的标签无法绑定事件解决方案~~~
今天用ajax实现动态插入数据时发现监听一直不起作用,一样的代码,非动态的就可以监听实现 这是困扰了我近一个小时的bug,后面才理解到可能是动态插入导致的! 看了看网上的解决方案,似乎都不太通俗,讲的 ...
- 【原生js】js动态添加dom,如何绑定事件
首先要明白浏览器在加载页面的时候是按顺序来加载的,这样以来就很清楚了,js动态添加dom以后,这些dom并没有绑定事件,这个时候最简单的一个办法就是:将绑定事件的方法封装到一个函数A中,在动态添加完d ...
- js动态追加的元素如何触发事件
一般通过js或者jQuery动态添加的元素标签,通过该元素标签.class.id触发事件,是无效的.如下所示: <body> <input type="text" ...
随机推荐
- 数据分析 - 开放街道地图(OpenStreetMap)
数据分析 - 开放街道地图(OpenStreetMap) Reinhard使用OpenStreetMap的开放地图数据作为本次数据分析的数据源,使用Python进行数据清洗,使用MongoDB进行数据 ...
- PHP命令行脚本接收传入参数的三种方式
通常PHP都做http方式请求了,可以使用GET or POST方式接收参数,有些时候需要在shell命令下把PHP当作脚本执行,比如定时任务.这就涉及到在shell命令下如何给php传参的问题,通常 ...
- solr 4.6的安装配置
从网上看了很多资料,很多都是老的.自己也算是结合着弄出来了. 1.下载的准备工作 tomcat8.solr4.6 具体的下载自己去找去吧.或者后期我在提供. 2.开始配置 tomcat路径:E:\ ...
- android dialog
/** * @Title MenuTest.java * @package com.example.standardview * @since * @version 1.0.0 * @author V ...
- 05 技术内幕 T-SQL 查询读书笔记(第四章)
第四章 子查询:在外部查询内嵌套的内部查询(按照期望值的数量分为,标量子查询 scalar subqueries,多值子查询multivalued subqueries)(按照子查询对外部查询的依赖性 ...
- 建立docker私有库(docker registry)(转)
建立docker私有库(docker registry) 博客分类: docker 我的目标还是无互联网安装,部署内部的docker私有库,目前docker镜像的获得还是需要互联网,将下载好的do ...
- Swift基础语法学习总结(转)
Swift基础语法学习总结 1.基础 1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型 ...
- drawable animation
drawable 动画,帧动画: 1 定义动画xml文件 <?xml version="1.0" encoding="utf-8"?> <an ...
- Download Free Oracle Reports Building Guide eBook
A very nice ebook on building reports in Oracle fusion middleware 11g. This manual is intended for a ...
- sql:sum(value)与count(letter),当用户不存在时查询到的值
SELECT sum(value) FROM invoice where username='yueer' SELECT count(letters) FROM invoice where usern ...