javascript - 当我克隆输入时 onblur 不起作用

标签 javascript jquery

我想将输入类型文本更改为密码。但它在ie8中不起作用。我找到了解决办法;克隆并替换输入但 onblur 在克隆后不起作用。

调试器不会破坏 OnBlur 函数。有人可以告诉我吗?

这是js代码:

$(document).ready(function () {
    var input = document.getElementById("Password");
    var input2 = input.cloneNode(false);
    input2.id = 'password1';
    input2.type = 'password';
    $('#Password').focus(function () {
       input.parentNode.replaceChild(input2, input);
       input2.focus();
    });
    $('#password1').blur(function () {
        if ($(this).val() == '' || $(this).val() == Passwordtxt) {
            document.getElementById("password1").setAttribute("type", "text");
            $(this).val(Passwordtxt);
        }
    });
});

最佳答案

改变

$('#password1').blur(function () {

$('body').on('focusout','#password1',function () {

参见 .on()

W3C 规定 focusblur 事件不冒泡,但 jQuery 定义了跨浏览器的 focusinfocusout 冒泡的事件。当 focusblur 用于附加委托(delegate)事件处理程序时,jQuery 映射名称并将它们作为 focusinfocusout 分别。为了保持一致和清晰,请使用冒泡事件类型名称。

关于javascript - 当我克隆输入时 onblur 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14498555/

相关文章:

javascript - 如何使用 JavaScript 自动更改 HTML 图像

javascript - 无法使用 leanModal 弹出两个不同的弹出窗口

javascript - 当 ul 可见时将事件附加到主体,然后在不可见时将其删除

javascript - & 符号不通过 url

javascript - 如何同时映射两个数组?

javascript - 如果在 Bluebird 中失败,则处理成功的 HTTP promise

javascript - AJAX 请求有效负载未显示在控制台日志中

javascript - 禁用/启用文本框 onclick 单选按钮

javascript - 从 jQuery 中获取 JSON - 从 Foursquare API

javascript - jQuery - 根据先前的选择动态选择数组