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之间有不同的执行顺序