Tengo un elemento <button>
dentro del cual tengo 2 elementos <span>
. Tengo 2 manejadores de eventos de clic de jquery adjuntos para cada uno de los elementos de tramo, así puedo hacer lo que quiera por cada clic. He aquí un vistazo rápido del código básico:jQuery evento burbujeo en el botón no funciona como se esperaba en Firefox
HTML
<button>
<span>Text1</span>
<span>Text2</span>
</button>
Javascript
$(function() {
$('button').bind('click', function() {
console.log('button clicked');
});
$('button > span:eq(0)').bind('click', function() {
console.log('text1 span clicked');
});
$('button > span:eq(1)').bind('click', function() {
console.log('text2 span clicked');
});
});
Esto es todo funciona bien en Chrome y el evento click se captura en el orden correcto : primero en cualquiera de los elementos de intervalo y luego el evento burbujea hasta el elemento de botón principal.
El problema es que en Firefox el evento de clic no se activa para ninguno de los elementos de intervalo, solo el controlador de eventos de botón registra el evento como disparado.
Aquí es un violín para que pueda ver lo que quiero decir: http://jsfiddle.net/spider/RGL7a/2/
Gracias
Supongo que esto nunca se resolvió? – Shane
@Shane Lamentablemente, no y por lo que he visto nunca podría ser, ya que aún no funciona en la última versión de Firefox. Los marcos como Bootstrap hacen esto usando [dos botones separados] (http://getbootstrap.com/components/#btn-dropdowns-split). Y otros frameworks como Foundation o YUI solo usan otro marcado para simular esta funcionalidad de ** botón dividido ** ([Foundation Example] (http://foundation.zurb.com/docs/components/split_buttons.html) y [YUI Example ] (http://yuilibrary.com/yui/docs/node-menunav/node-menunav-4.html)). – Bogdan
Normalmente utilizo Boostrap para este tipo de funcionalidad y cuando esa no es una opción, uso su estrategia ya que parece ser la mejor en términos de semántica de marcado. – Bogdan