2013-04-30 28 views

回答

-2

preventDefault調用只是保持運行的默認事件處理程序。如果您想要在evt.preventDefault()之後跳過任何代碼,請在其後面加上return false

$(function() { 
    $("#mydiv").keydown(function (evt) { 
     if (evt.which == 13) { 
      return false; // <-- now event doesn't bubble up and alert doesn't run 
      alert('event fired'); 
     } 
    }); 
}); 

此外,由斜視提到的,你可以使用stopPropagationpreventDefault來達到同樣的效果。

+0

但我認爲這是不好的做法,使用'返回false'。 – think123 2013-04-30 01:59:51

+1

@ think123'return false'等效於同時調用'evt.preventDefault();'和'evt.stopPropagation();' – 2013-04-30 02:01:38

+0

你有反向。 'preventDefault'不會讓事件冒泡。這就是'stopPropagation'所做的。 – 2013-04-30 02:01:59

相關問題