2014-04-07 237 views
3

下到處工作正常,除了在IE 11:event.returnValue = false來替換的preventDefault在IE瀏覽器不工作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;技巧也無法正常工作。不工作與返回錯誤要麼...

+1

你能告訴您更多的代碼?我的猜測是你沒有實際定義'event',而是使用全局window.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

我在哪裏把返回假?函數中的任何地方?最後 ?我的功能是不應該返回任何 – Slain

+0

吧?你什麼意思? –

+0

我的意思是,在ie11中,按alt顯示/隱藏菜單欄,它阻止任何功能綁定到alt鍵。我試圖返回false:在函數中,它仍然不會阻止alt在ie中的默認操作。 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

我想怎麼做,讓我們說,在關鍵?因爲你說的話似乎對我有意義,但我似乎並沒有理解如何使用initEvent方法將IDOMEvent設置爲可取消...或者它是我的eventlistener的特性?男人這看起來像高東西,請教我! – Slain

相關問題