我在代码中使用focusout
,因此我需要知道单击哪个元素来触发focusout
,因为如果某个特定元素负责触发{{ 1}}
我尝试使用focusout
,但没有用
stopPropagation
答案 0 :(得分:1)
使用jQuery
可以添加具有自定义属性名称的数据属性,例如data-responsible-element
;可以使用jQuery's
data()
方法来检索此内容,以检索失去焦点的元素。
简而言之:
在元素中设置data-{custom-property}="{some-value}"
,并在触发事件后使用{some-value}
方法从data-{custom-property}
检索data()
。
使用此方法,您可以将{some-value}
设置为 that 元素的unique identifier
,这将使您能够query
元素。
$('.focusable').focusout(function(e){
e.stopPropagation();
var element_that_lost_focus = $(this).data('responsible-element');
console.log(element_that_lost_focus + ' just lost focus!? D:');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input class="focusable" placeholder="Juan" data-responsible-element="Juan" />
<input class="focusable" placeholder="Carlos" data-responsible-element="Carlos" />
<input class="focusable" placeholder="Martín" data-responsible-element="Martín" />
<input class="focusable" placeholder="John Doe" data-responsible-element="John Doe" />