2011-08-11 2 views
1
$('#ajax-links a').live('click', function(e) { 
    var url = $(this).attr('href'); 
    url = url.replace(/^.*#/, ''); 
    $.history.load(url); 
    return false; 
}); 

'클릭'을 'dblclick'으로 바꿀 때마다 여전히 클릭 이벤트로 작동합니다. 데모는 여기 (http://www.serpere.info/jquery-history-plugin/samples/ajax/)에서 얻을 수 있으며 소스는 여기에서 다운로드 할 수 있습니다. https://github.com/tkyk/jquery-history-plugin/tree/master/samples/dblclick 이벤트가 click 이벤트처럼 작동하는 이유는 무엇입니까?

+0

아무도려고하지 #/some_page/

안드레아스된다 그 코드를 다운로드하면 도움이됩니다. jsFiddle에서 문제를 설정하고 우리와 공유하는 방법은 어떻습니까? –

+0

http://stackoverflow.com/questions/4562012/make-a-link-open-on-double-click 참조 –

+0

어떤 이유로 든 jsfiddle에서 복사/붙여 넣기를 할 수 없습니다. – user784637

답변

2

dblclick을 추가 할 때 단일 클릭을 기본으로하지 마십시오. 당신이 이벤트에 대한 기본 동작을 방지 할 수 있습니다 대신 return false;

: 당신이 거품에 이벤트가 DOM을 던져하지 않으려면

당신의 event.stopPropagation() 기능

$('#ajax-links a').live('click', function(event) { 
    event.preventDefault(); 
}); 
$('#ajax-links a').live('dblclick', function(event) { 
    event.preventDefault(); 
    var url = $(this).attr('href'); 
    url = url.replace(/^.*#/, ''); 
    $.history.load(url); 
}); 

Dblclick 이벤트를 사용할 수 있습니다 ly는 dblclick에서 해고 당합니다. 참조 : jsfiddle.net/cR5ZS

클릭 한 번으로 해고당하는 이유는 링크가 #/some_page/이고 dblclick 이벤트 핸들러가 거의 동일하기 때문일 수 있습니다. $.history 플러그인과 $ .history를 플러그인이 거의 동일하지 내 경험에 /some_page/을 저장 : 전화로로 분석 URL을 소요하고 해시에 넣습니다 : 홈페이지 = /some_page/

+0

대단한 일입니다. 어떤 이유로 두 번 클릭이 단일 클릭으로 간주됩니다. 그 이유는 무엇입니까? 아마도 앵커는 단일 클릭을 기본으로하기 때문입니까? – user784637

+1

죄송합니다. 전에이 글을 쓰지 않았습니다. Dlbclick 이벤트는 클릭 할 때 발생합니다. 한 번 클릭하면 단일 클릭 이벤트가 발생합니다. 임 당신이 한 번 클릭하면 당신이 쓰고있는 그 dblclick 거의 동일하게 꽤 확신합니다. 혼란스러워서 죄송합니다. – andlrc

+0

안녕하세요, Andreas, 정말 고마워요. 더블 클릭은 클릭 이벤트를 'dblclick'으로 변경했을 때 더블 클릭이 싱글 클릭으로 기본 설정되었다고 말했을 때 원래 코드를 참조했습니다 – user784637

관련 문제