duell이라는 기술이 있으며 웹 사이트의 접근성 향상을 위해 사용됩니다. 기기 (예 : 마우스) 만 이동할 수있는 사용자에게서 사용되며이 기능을 통해 작동합니다. 호버링 효과에서는 호가 예를 1 초로 설정하는 것보다 오랫동안 지속되면 클릭 기능이 실행됩니다. 내 HTML에서 내 버튼 요소에 대해 jQuery를 사용하여이를 에뮬레이션하고 싶습니다.HTML 버튼에서 잠깐 지연된 후에 클릭을 트리거하는 방법은 무엇입니까?
3
A
답변
6
(function() {
var clearTimeout = function(b) {
window.clearTimeout($(b).data("hoverTimer"));
}
$("button").hover(function() {
var button = $(this);
button.data("hoverTimer", window.setTimeout(function() {
button.trigger("click");
}, 1000));
}, function() {
clearTimeout(this)
}).click(function() {
clearTimeout(this)
});
})();
여러 번 클릭하지 않도록 편집되었습니다. (고마워, Alnitak)
9
var timer = null;
$('button').hover(mouseIn, mouseOut);
function mouseIn() {
timer = setTimeout(triggerClick, 3000);
}
function mouseOut() {
clearTimeout(timer);
}
function triggerClick() {
$('button').trigger('click');
}
이 솔루션은 타이머를 사용합니다. 요소 위에 마우스를 올리면 타이머가 시작되고 위에 마우스를 올려 놓으면 요소가 지워집니다. 분명히이 버튼은 1 버튼에서만 작동하지만 페이지의 모든 버튼에서 작동하도록 쉽게 수정할 수 있습니다.
5
나는 당신이 요청한 것을하기 위해 빠른 jQuery 플러그인을 쓰러 뜨렸다. 여기에 참고로 http://jsfiddle.net/raybellis/tF833/
에서
소스 (데모)는 (현재의) 코드를 보이는 같은 :
(function($) {
$.fn.duell = function() {
return this.each(function() {
var timer = null;
var el = this;
var stopTimer = function() {
if (timer) {
clearTimeout(timer);
timer = null;
}
};
var startTimer = function() {
stopTimer();
timer = setTimeout(function() {
$(el).click();
}, 1000);
};
// make sure other clicks turn off the timer too
$(el).click(stopTimer);
// handle mouseenter, mouseleave
$(el).hover(startTimer, stopTimer);
});
};
})(jQuery);
+0
하지 클릭하면 가능성이 여러 트리거가 발생합니다 내 첫 번째 플러그인에 좋지 않지만 가장자리 주변에 약간의 거친 점이 있습니다. 보너스 포인트의 경우 타임 아웃을 구성 할 수 있어야하며 시뮬레이션 된 클릭이 발생하면 시각적 인 피드백이 있어야합니다. – Alnitak
관련 문제
- 1. 체크 된 라디오 버튼에서 두 번째 클릭을 방지하는 방법은 무엇입니까?
- 2. IE8에서 HTML 요소의 이벤트를 트리거하는 방법은 무엇입니까?
- 3. 클릭 버튼을 트리거하는 방법은 무엇입니까?
- 4. jQuery - 지연된 HTML 함수
- 5. UIControlEventTouchCancel을 트리거하는 방법은 무엇입니까?
- 6. 잠깐 innoDB 테이블을 잠그십시오.
- 7. 버튼에서 효과를 제거하는 방법은 무엇입니까?
- 8. 내 UIAlertView가 지연된 후에 만 나타나는 이유는 무엇입니까?
- 9. 가비지 수집을 트리거하는 방법은 무엇입니까?
- 10. 토큰 후에 트리거하는 jQuery 자동 완성 플러그인
- 11. 내 습관이 끝날 때까지 잠깐 (
- 12. 확인란을 클릭하여 양식 제출을 트리거하는 방법은 무엇입니까?
- 13. jQuery - 다른 (관련) 클릭을 트리거하는 click 및 addclass?
- 14. 지연된 NSMenu로 NSButton을 만드는 방법은 무엇입니까?
- 15. 지연된 JPA 모음이 초기화되었는지 테스트하는 방법은 무엇입니까?
- 16. "지연된 쓰기 실패"메시지를 차단하는 방법은 무엇입니까?
- 17. WPF 지연된 RoutedEvents 발생
- 18. 버튼에서 backgroundImage의 이름을 가져 오는 방법은 무엇입니까?
- 19. 제출 버튼에서 함수를 호출하는 방법은 무엇입니까?
- 20. 동적 라디오 버튼에서 함수를 호출하는 방법은 무엇입니까?
- 21. listview 버튼에서 onclick 이벤트를 처리하는 방법은 무엇입니까?
- 22. 버튼에서 오버플로 텍스트를 스크롤하는 쉬운 방법은 무엇입니까?
- 23. 제출 버튼에서 값을 투명하게 만드는 방법은 무엇입니까?
- 24. ul 요소에서 focusout 이벤트를 트리거하는 방법은 무엇입니까?
- 25. ThreadPool을 사용하여 메소드의 지연된 실행을 예약하는 가장 좋은 방법은 무엇입니까?
- 26. 마우스 클릭을 사용하여 다각형을 복사하는 방법은 무엇입니까?
- 27. DataGrid에서 셀 클릭을 감지하는 방법은 무엇입니까?
- 28. 동적으로 그려진 그래픽의 클릭을 감지하는 방법은 무엇입니까?
- 29. 자바 스크립트에서 클릭을 시뮬레이트하는 방법은 무엇입니까?
- 30. 안드로이드에서 슬라이딩과 클릭을 구별하는 방법은 무엇입니까?
하지만 버튼이 실제로 ... – Alnitak