티스토리 뷰
기본적으로 제공되는 마우스 click 이벤트로는 해결이 불가능하다. 마우스 더블클릭 이벤트가 끝날 때까지 클릭 이벤트가 기다려 주지 않기 때문인데 이것을 스크립트에서 강제로 기다리게 해서 해결 할 수가 있다.
<script>
function click_event(obj)
{
alert('onclick function ');
return true;
}
function myOnClick(obj)
{
var is = true;
var iTimeout = 500; //500/1000 초 이 값을 조절하면 더블클릭까지 기다릴 시간을 조정할 수 있음
eval("obj._fnOnClick = function () { return(click_event(obj)) }");
obj._timeoutid = window.setTimeout(obj._fnOnClick, iTimeout , "JavaScript");
return is;
}
function myOnDblClick(obj)
{
var is= true;
if(obj != null) {
if( typeof(obj._timeoutid ) != 'undefined') {
window.clearTimeout(obj._intTimerId);
obj._timeoutid = null;
obj._fnOnClick = null;
}
alert('ondblclick function');
is= false;
}
return is;
}
</script>
<span onclick="return myOnClick(this);" ondblclick="return myOnDblClick(this);" >span tag</span>
근데 이 방법도 확실한 방법은 아니다.
더블클릭하는 시간을 잘 조절하다보면 cleartimeout 하기 전에 click 이벤트가 실행되어 버리는 경우가 있다. 그렇다고 무턱대고 timeout 시간을 길게 가져가면 클릭시 호출될 함수가 늦게 호출되어서 답답한 기분이 들 수 있다.
가장 좋은 것은 하나를 다른 곳으로 빼는 것인데 그렇게 하기 힘들다면 이 방법도 활용해 볼 만 하다.
'지식정보' 카테고리의 다른 글
A4 용지로 임시 CD 케이스 만들기 (0) | 2012.06.28 |
---|---|
JavaScript에서 이벤트 처리 (0) | 2012.03.07 |
나주김씨 (1) | 2011.11.11 |
Mac 에서 화면 캡쳐하기 (0) | 2011.10.31 |
오라클 세로 데이터를 가로 데이터로 변경 SYS_CONNECT_BY_PATH (0) | 2010.07.28 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday