
问题是当切换发生时,我之前在jquery选择器中创建的全局句柄(例如$(‘#password_fIEld_ID’))不再映射到密码字段.
是否有一个jquery函数可以在选择器上运行,它将从当前DOM中重新选择其原始的css选择器?
替换输入的函数如下:
function TogglePasswordHIDe(){ var show = false; if ($('#basic_pass_24').attr('type') == 'password') { show = true; } $('input.password_input').each(function() { var sDisabled = ''; if ($(this).is(':Disabled')) { sDisabled = 'Disabled="Disabled"'; } if ( show ) // show the password { $(this).replaceWith('<input type="text" '+sDisabled+' ID="'+$(this).attr('ID')+'" value="'+$(this).val()+'">'); show_password.text('hIDe'); } else // hIDe the password { $(this).replaceWith('<input type="password" '+sDisabled+' ID="'+$(this).attr('ID')+'" value="'+$(this).val()+'">'); show_password.text('show'); } });} …在替换完成后,我可以在.each中重新加载jquery对象,这样我对这些相同输入的全局句柄只会更新自己而不必重新声明新的jquery对象每个元素的相同选择器并覆盖原始句柄?
解决方法 使用事件委派,并监听父窗体上的事件:$("form").on("click",".password_input",function(event) { /* What to do when password input is clicked */}); 因为此事件绑定到表单元素,所以您可以根据需要添加和删除输入,而不必担心丢失事件.
当您在其中一个密码输入上单击或执行其他 *** 作时,此事件会冒泡到随后进行评估的形式.如果.target与您的选择器匹配(在此示例中为.password_input),则将调用回调函数,您可以对发生的事件做出反应.
总结以上是内存溢出为你收集整理的在DOM可能已更改后,是否可以“刷新”或“重新运行”jQuery选择器?全部内容,希望文章能够帮你解决在DOM可能已更改后,是否可以“刷新”或“重新运行”jQuery选择器?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)