Intentando capturar las pulsaciones de teclas en los menús del panel de pestañas de Bootstrap, pero simplemente aparece ignorando el preventDefault () colocado en el controlador de teclas de las pestañas.
document.onkeydown = function(e) { console.log("document catched the keydown event"); }; $('body > div > ul > li > a').on("keydown",function (e) { console.log("handled by the child - stop bubbling please"); e.preventDefault(); });Ejemplo: http://www.bootply.com/xUlN0dLRaV
que me estoy perdiendo aqui ?
Prueba e.stopPropagation()
e.stopPropagation() evita que el evento se expanda en el árbol DOM , lo que evita que se notifique el evento a los controladores principales.
$('body > div > ul > li > a').on("keydown",function (e) { console.log("handled by the child - stop bubbling please"); e.preventDefault(); e.stopPropagation(); });¿Diferencia?
¿Cuál es la diferencia entre event.stopPropagation y event.preventDefault?
Además e.preventDefault , también debe usar e.stopPropagation() para evitar que el evento aumente. En su caso, también puede devolver false desde el controlador de eventos que hace ambas cosas:
$('body > div > ul > li > a').on("keydown",function (e) { console.log("handled by the child - stop bubbling please"); return false; });