문제

나는 현재 터치 스크린 컴퓨터를위한 웹 페이지를 설정하려고 노력하고 있으며, 내 손가락의 표면적이 일반적으로 커서가 움직이게되므로 on 클릭 이벤트가 실제로 트리거하기가 어렵다는 것을 알았습니다. 나는 "클릭"입니다.

내가 사용하고 싶은 솔루션은 OnMousEdown 이벤트를 OnClick으로 전달하는 것입니다. 이 작업을 어떻게 만들 수 있습니까?

가장 좋은 대답은 다음과 같은 선입니다.

<input type="radio" onmousedown="this.onclick()"/>

(그러나 물론 작업 조건에 있습니다)

편집 : 내 구체적인 예는 라디오 버튼에 대한 것입니다 - 하나가 확인되면 다른 하나는 선택되지 않은 것입니다. 브라우저가 무료로 제공 할 때 사용자 정의 이벤트 에서이 동작을 복제하고 싶지 않습니다.

참고 : 편집하고 피드백을받은 후, 아마도 내가 잘못된 트랙에 있을지도 모른다고 생각합니다 ... 아마도 실제로 선택을하는 라디오 버튼의 "클릭"기능이 아닐 수도 있습니다. 새로운 제안을 환영합니다 ...

도움이 되었습니까?

해결책

자, 편집 후 명확 해집니다. 원하는 것은 사용자가 mousedown 이벤트가 해고되었습니다.

두 가지 옵션 :

  1. DOM 이벤트를 해고 할 수 있습니다. DOM 이벤트에 대한이 튜토리얼 이것에 대해 토론하십시오 (참조 수동으로 발사 이벤트 부분); 자바 스크립트 이벤트 발사 비슷한 땅을 덮습니다.
  2. 세트 onmouseout="this.checked = true;", 즉 라디오 버튼을 클릭하는 버튼 "Checks"/라디오 버튼을 선택합니다.

다른 팁

그냥 다루지 않겠습니까? mousedown 이벤트?

나는 당신이 질문에서 그것을 언급하지 않았다는 것을 알고 있지만, 당신이 jQuery를 사용하고 있다면 정말 쉬울 것입니다.

$().live('mousedown', function() { this.click(); });

어쩌면 이것은 당신을 위해 효과가 있습니다

document.getElementById("yourinput").onmousedown = function() {
   this.click();
}

또한 포인터를 통해 더 나은 접근성을 위해 입력 버튼/필드를 조금 더 크게 스타일링 할 수 있습니다.

두 이벤트를 모두 처리 할 수있는 단일 기능을 갖는 것이 좋습니다.

var function = foo(e) {
   ...
};

<input onclick="foo();" onmousedown="foo();"/>

눈에 잘 띄지 않는 JavaScript (예 : Yui를 사용하는 경우)를 사용하는 것이 좋습니다.

<input id="input-el"/>

var function = foo(e) {
   ...
};

var Event = YAHOO.util.Event;

Event.on('input-el', 'click', foo);
Event.on('input-el', 'mousedown', foo);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top