• Jquery动态bind绑定已有函数,函数自动执行的问题解决方法


    在bind后面的方法,不能带括号,带括号函数就自动执行了...

    <script>
    //通过子元素删除某行
    function deleteRow() {
      var flag = confirm('确认要删除吗?');
        if(flag == true) {
          console.log($(this).parents("tr").remove())
          bootbox.alert("删除成功!");
        }
    } $(
    function(){   //jquery对象克隆方法,克隆任意对象,这里克隆表格最后一行对象。 var newRow = $("tbody tr:last-child").clone(); //将克隆的新行追加到表格末尾 $('#table_bug_report').append(newRow); bootbox.alert("添加成功!");   //jquery对象动态绑定已有函数,错误写法   //重新给动态jquery对象绑定已有的函数,这种写法是错的,绑定函数时,会执行一次deleteRow()函数   //newRow.find(".btn-danger").bind('click' , deleteRow());   //正确写法   //重新给动态jquery对象绑定已有的函数,绑定函数时应传入函数名,而不能带括号,带括号函数就自动执行了..   newRow.find(".btn-danger").bind('click' , deleteRow);   /* //另一种可行写法,重新给动态jquery对象绑定匿名函数(这个匿名函数不是已有的)   newRow.find(".btn-danger").bind("click", function(){     var flag = confirm('确认要删除吗?');     if(flag == true) {       console.log($(this).parents("tr").remove())       bootbox.alert("删除成功!");     }   });   */   /* //硬核给表格添加一行的方法。 //下面的表格行标签字符串并不是DOM对象,会有问题,下面调用append()函数,实际只是一串添加在页面的标签字符串。 //浏览器只会简单解析,而不会有DOM对象层次的操作。 $('#table_bug_report').append( '<tr><td class="center"><label><input type="checkbox" class="input"><span class="lbl"></span></label></td>' + '<td>'+ $('#userId').val() + '</td>' + '<td>'+ $('#account').val() + '</td>' + '<td>'+ $('#passwd').val() + '</td>' + '<td>'+ $('#CN_name').val() + '</td>' + '<td>'+ $('#EN_name').val() + '</td>' + '<td><div class="inline position-relative" >' + '<button class="btn btn-mini btn-info" data-toggle="modal" data-target="#myModal"><i class="icon-edit">编辑</i></button>'+ '<button class="btn btn-mini btn-danger" onclick="deleteRow()"><i class="icon-trash">删除</i></button></div></td></tr>' );   */ }); </script>
  • 相关阅读:
    git使用
    silverlight与wcf双向通讯 例子
    Oracle 存储过程
    C# 视频教程
    佩服的技术大牛 “赵劼”
    setTimeout setInterval
    js闭包
    MVC Razor视图引擎控件
    MVC json
    springboot创建多环境profile打包
  • 原文地址:https://www.cnblogs.com/Lints/p/11313760.html
Copyright © 2020-2023  润新知