1

在我执行这段代码之后:

function checkUser(value){
        $('#user').removeClass('has-error');
        $('#user div').on(function(){
            $('#user div').remove('label');
        });
        $.ajax({
          type: "POST",
          url: "",
          data: { user: value }
        }).done(function(msg) {
            if(msg == " userexist"){
                $('#user').addClass('has-error');
                $('#user div input').before('<label class="control-label" for="usuario" id="erro">Usuário já existe, escolha outro.</label>');
            }
        });
    }

这项工作,但问题是删除此代码:

<label class="control-label" for="usuario" id="erro">Usuário já existe, escolha outro.</label>

我需要在function checkUser(value)执行之前将其删除,我尝试使用此代码,但我不知道如何删除。这段代码不是由单击或选择的东西执行的,我想我可能会触发 on()。

$('#user').removeClass('has-error');
$('#user div').on(function(){
    $('#user div').remove('label');
});

这项工作$('#user').removeClass('has-error');,但这不起作用:

$('#user div').on(function(){
    $('#user div').remove('label');
});

我试图从 on() 理解 api,我看到你可以使用自定义事件,但我不知道如何使用它。

4

2 回答 2

1

文档...

触发自定义事件

$( "#some-element").trigger( "custom");

然后:

$('#user div').on('custom', function(){
    $('#user div').remove('label');
});
于 2013-09-21T23:14:03.177 回答
1

一个问题是 $('#user div').remove('label');,当您将选择器传递给.remove()方法时,它会过滤集合并删除匹配的元素,该集合只有 DIV 元素,因此.remove()静默失败。

$('#user div label').remove(); 

如果要监听动态生成的元素的事件,应该委托事件,委托的目标元素必须是静态元素。

$('#staticParent').on('event', '#theGeneratedElement', function() {
  // ...
});
于 2013-09-21T23:16:37.787 回答