$(this)当jQuery事件绑定到整个课程时,将返回错误的元素



我有几个具有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应用于其的第一个元素,而不是事件触发的元素。

我的jQuery版本正在用启动事件的元素填充 this,而不一定是满足满足选择器的第一个元素。不知道为什么它返回您的第一个元素。

无论如何,您可能需要查看属性e.target是否具有您要寻找的元素。从jQuery API中,e.currentTarget并不总是是启动元素,而是由于事件冒泡而被修改。e.target将永远是启动事件。

jQuery event.target api

在此处查看jQuery代理:http://api.jquery.com/jquery.proxy/

代理将设置正确的"此"。

相关内容

  • 没有找到相关文章

最新更新