javascript - jquery 掩码仅在加载 ajax 内容后工作一次
问题描述
一些内容由 ajax 显示,在 div 中呈现为当用户点击外部时关闭的灯箱(此时此内容被删除):
每次用户点击目标 div 时,都会有一些内容进入这个控制器:
控制器:
def ajax_load
// some code
end
最后从控制器调用这个 js 函数:
ajax_load.js.erb
<% if @variable %> // embedded variable
$(target_div).html("<%= j render 'path' %>");
$('.some_div').on('click', '#target_element', function(e) {
e.preventDefault();
$("input#element_0").mask("00/00"); // works only once
$("#element_1").prop('checked','checked'); // works
$("#element_2").show(); // works
});
<% end %>
在这个灯箱内,我有一些输入,并且调用了这个 jquery 掩码函数,当我在页面上打开这个元素一次时它确实有效,但是如果关闭灯箱并再次调用它,它就不再存在了,其他行单击功能继续工作,例如“跳跃”遮罩功能。
如果我尝试让这个掩码在它停止工作后直接从浏览器控制台工作,它不会改变。
Obs:我还在浏览器控制台上做了一些测试:
在上面的代码行已经从 js 文件中加载之后,让它在浏览器控制台上工作的唯一方法是从 jquery 路径中改变一点:
$(".previous_div input#element_0").mask("00/00");
为了让它再次工作,我们需要做更多的改变:
$("body .previous_div input#element_0").mask("00/00");
解决方案
我有同样的问题,但是从检索的 ajax 添加了这个脚本,它对我有用
<script>
$('input[name="txt-tel"]').mask('(000)-000-0000');
$('input[name="txt-dni"]').mask('#');
</script>
推荐阅读
- jenkins - Jenkins 作业从 GUI 中消失,但仍存在于磁盘上
- python - Tensorflow - 如何处理序列输入数据(序列数据输入层)
- vb.net - VB 中的外部字典引用
- java - 有没有办法从数据库中获取记录作为逗号分隔的文本文件
- javascript - 如何在 JavaScript 中将日期时间转换为 UTC+1
- php - array_push 与关联数组
- bouncycastle - PKCS11 EC公钥到BC PKCS10对象的映射问题
- xml - 有关验证已签名 XML 文档的安全问题
- reactjs - React Native:UI 在 Android 中不合适,但在 iOS 中运行良好
- python - 如何从 Pandas Dataframe 创建多个元组列表