做项目时遇到的,具体是界面如下图:当点击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> &times;</i></a></li>
<li><a href="javascript:void(0)" class="menuSlide"><span></span>群组二<i> &times;</i></a></li>
<li><a href="javascript:void(0)" class="menuSlide "><span></span>群组三<i> &times;</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> &times;</i>");
par.parent().animate({marginLeft:"0px"},300);
}
})
});

当初写的时候问题是卡在点击取消时恢复到初始状态的X号后再点击没反应。当时的写法是$("#mydiv").find("i").on('click',function(){})。这样再点击X号时它不会给i附加click事件的,所以正确的写法应该是将i放在on的括号内写,这样就能找到i然后添加click事件。

js动态替换数据的点击事件的更多相关文章

  1. 解决jQuery ajax动态新增节点无法触发点击事件的问题

    在写ajax加载数据的时候发现,后面添加进来的demo节点元素,失去了之前的点击事件.为什么点击事件失效,我们该怎么去解决呢? 其实最简单的方法就是直接在标签中写onclick="" ...

  2. 抓取Js动态生成数据且以滚动页面方式分页的网页

    代码也可以从我的开源项目HtmlExtractor中获取. 当我们在进行数据抓取的时候,如果目标网站是以Js的方式动态生成数据且以滚动页面的方式进行分页,那么我们该如何抓取呢? 如类似今日头条这样的网 ...

  3. js动态生成数据列表

    我们通常会使用table标签来展示数据内容,由于需要展示的数据内容是随时更换的,所以不可能将展示的数据列表写死在html写死在页面中,而是需要我们根据后台传来的数据随时更换,这个时候就需要我们使用js ...

  4. (转载)js(jquery)的on绑定点击事件执行两次的解决办法

    js(jquery)的on绑定点击事件执行两次的解决办法—不是事件绑定而是事件冒泡 遇到的问题:jquery中用.on()给页面中新加的元素添加点击事件时,点击事件源,绑定的事件执行两次,这里的ale ...

  5. JS实现按下按键触发点击事件

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  6. js中 ajax动态新增节点无法触发点击事件

    在写ajax加载数据的时候发现,后面添加进来的demo节点元素,失去了之前的点击事件. 其实最简单的方法就是直接在标签中写onclick="",但是这样写有些场景的是实现不了的,最 ...

  7. JS动态添加的标签无法绑定事件解决方案~~~

    今天用ajax实现动态插入数据时发现监听一直不起作用,一样的代码,非动态的就可以监听实现 这是困扰了我近一个小时的bug,后面才理解到可能是动态插入导致的! 看了看网上的解决方案,似乎都不太通俗,讲的 ...

  8. 【原生js】js动态添加dom,如何绑定事件

    首先要明白浏览器在加载页面的时候是按顺序来加载的,这样以来就很清楚了,js动态添加dom以后,这些dom并没有绑定事件,这个时候最简单的一个办法就是:将绑定事件的方法封装到一个函数A中,在动态添加完d ...

  9. js动态追加的元素如何触发事件

    一般通过js或者jQuery动态添加的元素标签,通过该元素标签.class.id触发事件,是无效的.如下所示: <body> <input type="text" ...

随机推荐

  1. [已解决] 快速理解RSA算法

    RSA算法基础详解 http://www.cnblogs.com/hykun/p/RSA.html RSA算法原理(一) http://www.ruanyifeng.com/blog/2013/06/ ...

  2. Write Your software base on plugin(C/C++ ABI)

    一个软件,如果把所有的功能写进C++源码,维护,扩展,编译都特别麻烦. 共享库后缀名.Linux -> .so  Windows -> .dll 关于动态符号显示问题,具体可以看系统的AP ...

  3. caffe model 可视化

    1. 打开网址 http://ethereon.github.io/netscope/#/editor 2.将自己的train_test.prototxt里的复制粘贴到左边 3.然后同时shift+e ...

  4. 关键字nullable,nonnull,null_resettable,_Null_unspecified详解

    相信在开发过程中,很多小伙伴们儿都会见到nullable,nonnull,null_resettable,_Null_unspecified这几个关键字,但是并不知道它们是什么意思,下面我就给大家一一 ...

  5. 【转载】DOS 系统和 Windows 系统有什么关系?为什么windows系统下可以执行dos命令?

    作者:bombless 因为不同的系统都叫 Windows ,这些系统在界面上也有一定连续性并且因此可能造成误解,所以有必要稍微梳理一下几个不同的 Windows 系统.首先是 DOS 上的一个图形界 ...

  6. 3d游戏模型及地形提取及导航

    支持所有DirectX的游戏模型提取 有需要的可以直接联系我!QQ290387340

  7. service&thread

    service:在后台静默运行.服务必须在一个线程中才能运行.长时间的在后台运行,而且不需要交互的情况下,使用服务. thread:在后台运行,但是可以与用户进行相应的交互操作.比如说,音乐播放器,后 ...

  8. bat基础命令

    rem 删除日志文件和catalina文件移动war包(下载了tomcat的一级目录下) del /q /s logs\*.* del /q /s webapps\moc.war rmdir /q / ...

  9. Android复制粘贴文字

    /** * 实现文本复制功能 * * @param content */ public static void copy(String content, Context context) {// 得到 ...

  10. iOS - Localizable 国际化

    1.国际化 开发的移动应用更希望获取更多用户,走向世界,这就需要应用国际化,国际化其实就是多语言,系统会根据当前设备的语言环境来识别 App 中使用中文还是英文. 2.应用内容国际化 1.新建一个名为 ...