当Jquery事件绑定到整个类时,$(this)返回错误的元素

时间:2014-02-03 23:51:53

标签: javascript jquery html event-handling this

我有几个具有类specifierInput

的输入

我希望在关注任何这些功能时(#确实如此)运行此功能

$('.specifierInput').focus(function (e) {
    if (isValidationErrorResponse($(this).val())) {
        $(this).val('');
        $(this).trigger('keyup');
    }
    $(this).css('color', 'black');
});

我的一些HTML

<textarea id="mfpIdentifierText" name="ASSerialNumber" class="specifierInput"style="width:99%; height:80px; resize:none;"><%= (Session["ASSerialNumber"] ?? "").ToString()%></textarea>

<input name="ASModel" class="specifierInput alphaNumericWithSpacesCommasDashes" type="text" value="<%= (Session["ASModel"] ?? "").ToString()%>"/>

我的问题是$(this)正在返回应用specifierInput的第一个元素,而不是事件触发的元素。

2 个答案:

答案 0 :(得分:1)

我的jQuery版本使用触发事件的元素填充this,不一定是满足选择器的第一个元素。不确定为什么它会为你返回第一个元素。

在任何情况下,您可能想要查看属性e.target是否包含您要查找的元素。在jQuery API中,e.currentTarget并不总是启动元素,但可以通过事件冒泡进行修改。 e.target始终是始发事件。

jQuery event.target API

答案 1 :(得分:0)

在这里查看jQuery代理:http://api.jquery.com/jquery.proxy/

代理人会设置正确的&#39;此&#39;。