2014-04-07 1 views
3

다음은 IE (11)를 제외하고 모든 곳에서 잘 작동 : 나는 또한이 사이트에서 제공되는 다른 사람의 방법을 시도했지만 아니, 할 수는없는 것 같다할 event.returnValue = false를 11

if(event.keyCode == 18) 
{ 
    event.preventDefault ? event.preventDefault() : event.returnValue = false 
    altcurrentstate = "keyisdown"; 
    Xmouse = x; 
    Ymouse= y; 
    return false; 
} 

IE 11의 preventDefault까지 무엇이든 상관없이 alt 키와 화살표 키. event.returnValue = false; 트릭이 작동하지 않습니다. false를 반환하는 것으로 작동하지 않습니다 ...

+1

당신이 코드의 더 많은 것을 보여줄 수 있습니까? 내 추측은 당신이 실제로'event'를 정의하지 않고 대신 global.event (모든 브라우저에서 지원되지는 않음)을 사용하고 있다는 것입니다. –

+0

@KevinB가 말했듯이, 뭔가 다른 것이 틀림 없습니다. 'preventDefault'는 [IE9 이후 지원되었습니다] (http://msdn.microsoft.com/en-us/library/ie/ff975460 (v = vs.85) .aspx)입니다. – Chris

+0

event.preventDefault? event.preventDefault() : event.returnValue = false; 이 라인은 내 문제를 해결했습니다 (y) –

답변

3

콜백 함수에서 실제로 return false을 시도하십시오.

+0

어디서 false를 넣을까요? 함수 어디에서나? 결국? 내 기능은 아무것도 반환하지 않을거야 – Slain

+0

응? 너 무슨 뜻이야? –

+0

ie11에서 alt 키를 누르면 메뉴 막대가 보이거나 숨겨지고 alt 키에 함수가 바인딩되는 것을 막을 수 있습니다. 그리고 나는 false를 반환하려했습니다 : 함수에서 그리고 그것은 여전히 ​​alt의 기본 액션을 막지 못하고 있습니다. preventDefault()는 내가 시도한 다른 모든 브라우저에서 잘 작동합니다 .... – Slain

0

아마도 initEvent() 방법을 사용하여 이벤트를 취소 가능하게 설정해야합니다.

this page 하단의 발언에 따르면

If you cannot cancel the event, calling IDOMEvent::preventDefault has no effect. 
When you create a custom event by using the IDocumentEvent::createEvent method, you can set the IDOMEvent::cancelable property by using the IDOMEvent::initEvent method. 
+0

그리고 at 키를 어떻게하면 좋을까요? 당신이 말하는 것은 나에게 맞는 것 같지만, initEvent 메소드를 사용하여 IDOMEvent를 취소 가능하게 설정하는 방법을 이해하지 못하는 것 같아요? 아니면 내 이벤트 수신기의 속성입니까? 이 사람은 높은 물건처럼 보이고, 제발 가르쳐주세요! – Slain