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

Posted lints

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>      

 

以上是关于Jquery动态bind绑定已有函数,函数自动执行的问题解决方法的主要内容,如果未能解决你的问题,请参考以下文章

Jquery动态绑定事件处理函数 bind / on / delegate

jquery绑定函数在Firefox和Chrome之间有不同的执行顺序

jQuery 之 事件方法

jQuery事件绑定on()bind()live()与delegate() 方法详解

jquery动态添加的事件失效解决方法:on()

jQUery事件