繁体   English   中英

知道谁触发了事件“聚焦”

[英]Know who fired the event “focusout”

我在代码中使用了focusout ,因此我需要知道单击了哪个元素以触发focusout因为如果特定元素负责触发focusout则需要执行特定功能

我尝试使用stopPropagation但没有用

  $('#buscar_menu .select2-search__field').focusout(function(e){
    e.stopPropagation();
    /*if(e.target.classList[0] == "search_field"){
        console.log("eureca");

    }else{
                    console.log("not eureca");
            }*/
});

使用jQuery您可以使用自定义属性名称添加data属性,例如data-responsible-element 可以使用jQuery's data()方法来检索此内容,以检索失去焦点的元素。

简而言之:在元素中设置data-{custom-property}="{some-value}" ,并在触发事件后,使用data()方法从data-{custom-property}检索{some-value}

使用此方法,您可以将{some-value}设置为该元素的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" /> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM