채택완료

jquery focusin 질문이 있습니다

2020-09-07 (월) 17:12:29 1,756

해당 버튼에 focusin이 됐을때

이 포커스가 클릭으로 들어온건지 탭으로 들어온건지 확인을 할 수 있는 방법이 무엇이 있을까요?

$("button").on("focusin", function(){

        // 클릭으로 포커스시

        // 탭으로 포커스시

})

위와 같이 접근 방법에 따라 분기를 해줘야하는데 검색을 해도 원하는 답을 찾기가 힘드네요

|

답변 3개 / 댓글 1개

채택된 답변
+20 포인트
2020-09-07 (월) 17:32:14

완벽하지 않습니다.

이런식으로라도 분류해서 진행하시면 될듯 싶습니다.

더 정확한거는 이벤트 콘솔로 객체 확인해서 다른 부분으로 분류 가능한지는 안봤습니다.

let check = false;

// 버튼 안에 마우스가 있을때

$("button").on("mouseenter", function () {

check = true;

}

// 버튼 안에 마우스가 없을때
$("button").on("mouseleave", function () {

check = false;

}

// 클릭 및 이외 이벤트 체크

$("button").on("focusin", function () {

if (check) {

클릭으로 들어온 이벤트

return false;

}

클릭 이외로 들어온 이벤트

}

답변에 대한 댓글 1개

2020-09-07 (월) 17:54:59
감사합니다 해당방법으로하니까 원하는대로 결과가 나왔네요
2020-09-07 (월) 17:46:58

mouseover 와 click 이벤트로 분리하여 처리하는 것을 추천합니다.

$("button").on("mouseover", function(){
});

$("button").on("click", function(){
});

2020-09-07 (월) 17:18:54

click 이벤트로 잡으면 되는데

아마 포커스와 충돌이 날거에요.

그럴때 아래 링크 참조하시면 됩니다.

https://vnthf.github.io/blog/jquery-focusout%EA%B3%BCclick-event%EC%B6%A9%EB%8F%8C/

답변을 작성하려면 로그인이 필요합니다.