• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
pengpenglin
乐于工作,享受生活。
博客园    首页    新随笔    联系   管理    订阅  订阅
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> &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事件。

 

posted on 2016-04-29 10:30  pengpenglin  阅读(2425)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3