更改id时,函数仍会运行

时间:2014-01-01 22:33:05

标签: jquery html

我在这里有一些简单的代码:

$('#username').on('input paste', function(){
    if($(this).val().length >3 && $(this).val().length <= 16){
        $(this).css('background-image', 'url(images/register_related/input_box_success.png)');
        usr = 1;
        dat_usr = $('#username').val();
        console.log('Correct Stuff Username');
    }
    else if($(this).val().length == 0){
        $(this).css('background-image', 'url(images/register_related/input_box_rq.png)');
        usr = 0;
    }
    else {
        $(this).css('background-image', 'url(images/register_related/input_box_error.png)');    
        usr = 0;
    }
});

稍后我将#username的id更改为#password:

$('#username').attr({id:'password', type:'password'});

检查页面的来源时,它显示为密码,而不是用户名,但用于#username的功能仍然适用。为什么会发生这种情况?如何避免?

1 个答案:

答案 0 :(得分:0)

正如codehorse在评论中所说,你必须使用:

$('#username').off();