0

我有这个代码:

$('input.error').on('click', function(){
    $(this).removeClass('error').val($(this).data('submitval'));
});

但是,当我单击带有错误类的表单元素时,如下所示:

<input id="email" type="email" class="required error" placeholder="Enter Your Email here" name="email" value="">

什么都没有发生,我设置的断点没有被调用,也没有任何代码执行。但是,如果我将其设置为$('input')它确实有效。我的理解是,这.on应该涵盖加载后 DOM 的变化。我错过了什么吗?

4

1 回答 1

3

是的,您是:.on()结合了现场活动、代表和常规活动,您使用的语法创建了常规活动。

你想要的是

$('#someparentelement').on('click', 'input.error',function() {
    // ...
});

#someparentelement应该是尽可能接近输入元素但在绑定事件时存在的元素。

于 2012-07-08T21:33:12.483 回答