在(“点击”)不会被调用

问题描述:

我有这样的代码:在(“点击”)不会被调用

$('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中的更改。我错过了什么吗?

+1

为什么你的理解?考虑阅读文档:http://api.jquery.com/on/ – Esailija 2012-07-08 21:35:44

+0

愚蠢的我。问题在于API页面上的第一个代码示例是如何*不*执行的:p – Damon 2012-07-08 21:40:26

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

你想要什么是

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

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