手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >jQuery页面元素动态添加后绑定事件丢失方法,非 live
jQuery页面元素动态添加后绑定事件丢失方法,非 live
摘要:代码1:以此方法绑定的input框事件,在通过add按钮后用jquery绑定的事件alert就会丢失$('input[name=test_i...

代码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】相关文章:

js实现鼠标划过给div加透明度的方法

jquery简单实现外部链接用新窗口打开的方法

jQuery替换textarea中换行的方法

jQuery解析XML文件同时动态增加js文件的方法

jQuery实现页面内锚点平滑跳转特效的方法总结

jQuery切换所有复选框选中状态的方法

jQuery获取页面元素绝对与相对位置的方法

JavaScript动态添加style节点的方法

jQuery插件制作之参数用法实例分析

javascript元素动态创建实现方法

精品推荐
分类导航