2010-03-08 4 views
1

jQuery 라이브러리를 사용하여 Safari에서 기본 앵커 동작을 방지하려고합니다. 불행히도 false를 반환하거나 event.preventDefault()를 사용하는 표준 기술은 Safari에서 작동하지 않는 것 같습니다.jQuery로 Safari의 기본 앵커 동작을 억제합니다.

누구든지이 문제에 도움을 줄 수 있습니까?

내가 함께 일하고 있어요 코드는 다음과 같다 : 핸들러가 사파리와 FF와 크롬에 나를 위해 false 작품을 반환 갖는

$('#main .green-tabs a').live("click",function(event){ 
        $('.green-tabs a').removeClass('active'); 
        $(this).addClass('active'); 
        event.preventDefault(); 
        var that = this; 
        return LolPage(event,that);}); 
+2

"라이브"대신 "바인딩"을 시도하면 어떻게됩니까? – Pointy

+0

나는 그것을 시도하고 효과가 있는지 확인합니다. –

답변

1

. 내 테스트 페이지는 여기를 참조하십시오 : http://gutfullofbeer.net/bind.html 그리고 만약 내가 false를 반환하는 대신 "preventDefault"핸들러를 호출 할 수 있습니다.

"LolPage"기능은 귀하의 질문에서 제외되어 있으며, 여기에 매우 중요할지 여부가 궁금합니다.

+0

안녕하세요 Pointy, 해당 함수는 항상 false를 반환하고 오류가 발생하지 않습니다. 나는 또한이 응용 프로그램이 페이스 북 환경에 살고 있다고 말하면 좋겠다. 페이스 북 환경에서는 이상한 몇 가지 이유가있을 수있다. 해당 환경에서 몇 가지 테스트를 실행하고 여기에 결과를 게시합니다. –

+0

좋아, 그럼 행운을 빌어! 이와 같은 수수께끼 같은 문제는 항상 흥미 롭습니다. – Pointy

+0

글쎄 그것은 오랜 시간이 걸렸지 만 나는 그것을 추적 한 것을 기억한다. 사파리는 프레임이있는 웹 사이트 (페이스 북의 iframe 응용 프로그램)에서 쿠키를 설정할 수있는 사람에 대해 매우 까다 롭습니다. 사용자가 해당 도메인에 대한 쿠키를 설정하기 위해 도메인을 "명시 적으로"탐색해야합니다. 위의 코드에서 쿠키가 손실되어 서버에 요청이 전송되었을 때 기대했던 html이 아닌 프레임 버스터를 반환하는 Facebook 인증 코드가 실행되어 앵커가 단순히 기본 동작을 수행하고 있다고 생각하게되었습니다. 현실에서는 나는 프레임이 깨졌습니다! 하아! –

관련 문제