代码1: 以此方法绑定的input框事件,在通过add按钮后用jquery绑定的事件 alert就会丢失
<input type="button" value="Add" name="test_but" /> <div id="test_div"><input name="test_input"/></div> <script> $('input[name=test_input]').change(function(){ alert($(this).val()) ; }); $('input[name=test_but]').click(function(){ $('input[name=test_input]').clone().appendTo($('#test_div')); }); </script>
代码2: 以jquery的live方法绑定change事件,alert不会丢失,但是在点击add时有可能多次添加input,或者多次弹出提醒框,刷新页面后就好了,但是多次操作后还是会这样
<input type="button" value="Add" name="test_but" /> <div id="test_div"><input name="test_input" onchange="alert_val(this)"/></div> <script> $('input[name=test_input]').live('change',function(){ alert($(this).val()) ; }); $('input[name=test_but]').click(function(){ $('input[name=test_input]').clone().appendTo($('#test_div')); }); </script>
代码3: 解决之道....
<input type="button" value="Add" name="test_but" /> <div id="test_div"><input name="test_input" onchange="alert_val(this)"/></div> <script> function alert_val(obj){ alert($(obj).val()); } $('input[name=test_but]').click(function(){ $('input[name=test_input]').clone().appendTo($('#test_div')); }); </script>
通过js原生态的onchange事件,把对象本身传递进去,这样既可以用到jquery语法继续写东西,也不会丢失绑定事件,更加不会因为live的特性导致事件多次执行....完美!
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索jquery绑定事件live
live jquery 动态绑定、jquery给元素绑定事件、jquery绑定未来元素、jquery元素绑定事件、jquery 绑定动态元素,以便于您获取更多的相关知识。
时间: 2024-09-16 21:28:17