1

jsfiddle에 대한 실제 작동 예제는 IE8, Firefox, Chrome에서 거의 모든 브라우저에서 작동합니다. (mavis 또는 test1)은 두 번 클릭하면 작동합니다.내 onbeforeunload 함수에 문제가 있어도 찾을 수 없습니다.

$(".temasec").live("click", function() 

및 클래스 변경 버튼 "메이 비스"또는 "TEST1"의하지를 클릭 :이 기능을하기 전에, 내 예제에서처럼의 JScript의 setConfirmUnload 기능의 정상을 넣으면

http://jsfiddle.net/Qq2tk/

처음 클릭 할 때 아무 것도하지 않고 두 번째 클릭 만하면됩니다. 이것은 IE8에서만 발생합니다 (IE7과 IE6에서는 테스트하지 않았을 것입니다).

그래서 클래스 변경 기능이 정상 작동 한 후에 setConfirmUnload 함수를 옮기면됩니다.

이 코드의 잘못된 점은 무엇입니까? 특히 IE8에서만 이상한 행동을 한 IE8.

도움 주셔서 감사합니다.

Abides

답변

0

변경 이벤트를 잘 지원하지 않는 것처럼 보입니다. 완전히 .live() 메소드를 지원하지 않습니다 "파일"타입의 입력을 사용하는 경우이 밖으로 http://api.jquery.com/live

페이스트와는 추가로, 이벤트를 다시

점검으로 인해 을 변경하려면 Internet Explorer에서 이벤트 버블 링을 시뮬레이트하는 문제 이러한 경우 에서는 .bind() 메서드를 대신 사용할 수 있습니다.

하면 jQuery를 "언로드"이벤트를 사용하여 시도해야

+0

답변을 주셔서 감사합니다. livequery가 ie8에서 작동하고 있으며 다른 브라우저에서는 아직 테스트하지 않았습니다. 내 프로젝트에서 3.rd 파티 플러그인을 사용하고 싶지는 않지만 기회가 없다고 생각합니다. 어쩌면 jquery 라이브 설명서에 명시된대로 바인딩해야합니다. – Abides

0

insteady livequery를 사용해보십시오 :

$ (창) .unload (unloadMessage);

+0

제안 해 주셔서 감사합니다. 문제에 대해 관련이 없으므로 window.unload와 관련된 함수를 삭제하고 위에 live.change 이벤트를 추가하면됩니다. 결과는 동일합니다. – Abides

관련 문제