zoukankan      html  css  js  c++  java
  • js中click重复执行

    问题背景:在写一个非常简单添加方法的时候,用onclick事件调用添加方法,点击第一次没问题,第二次会重复执行,经过多次查找资料得知这个状况的解决方案,特意总结一下;

    代码如下:点击#spec_form出现重复点击

     function addSpec() {
                var spec_form_format = jQuery("#spec_form_format");
                spec_form_format.find(".noise-label01").text('实例'+addNum);
                spec_form_format.find(".noise-label02").text('名称'+addNum);
                spec_form_format.find(".noise-label03").text('价格'+addNum);
                jQuery("#spec_form").append(spec_form_format.html());
                addNum++;
         
    $("#spec_form").click(function(){
             alert('111')
           });
        }
    //添加
     $(".add").click(function(){
          addSpec()
    });           

    后来才发现问题是,我在页面中动态加载相同模块的时候,触发第二次添加加载的模块时,第一个模块的内容随之改变,这是因为第一个模块点击添加事件时并没有销毁而执行了两遍,所以只要改成如下:

    只要选择在每次事件处理完成后销毁该事件,或者在下次事件触发前销毁之前的事件(每次绑定前先取消上次的绑定)

    $("#spec_form").unbind('click').click(function(){ alert("111") });

    还有另一种写法:

    $("#spec_form").off("click").on("click",function(){ alert('111')});

    但是.off()有一个不好之处,就是会同时干掉所有相同类型的事件绑定,所以要谨慎使用

     by name an

  • 相关阅读:
    [Sql Server 转载]
    [C#][收集整理]
    [Sql Server][原创]
    [Sql Server][原创]
    [Sql Server][原创]
    C#代码验证sql语句是否正确(只验证不执行sql)的方法
    [Sql Server][转载] 数据库表的基本信息,你真的都了解吗?
    [Sql Server][原创] 常用 Sql 查询
    LocalProxy
    通过字符串引入模块下的属性
  • 原文地址:https://www.cnblogs.com/widgetbox/p/9066097.html
Copyright © 2011-2022 走看看