Mam element <button>
wewnątrz którego mam 2 <span>
elementów. Mam 2 dołączone moduły obsługi zdarzeń kliknięcia jquery dla każdego z elementów zakresu, dzięki czemu mogę robić, co mi się podoba przy każdym kliknięciu. Oto krótkie spojrzenie kodu podstawowego:Zdarzenie jQuery bulgotanie na przycisku nie działa zgodnie z oczekiwaniami w przeglądarce 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');
});
});
To wszystko działa dobrze w Chrome i zdarzenie click jest ujęte w odpowiedniej kolejności : najpierw na dowolnym z elementów span, a następnie bąbelki zdarzeń do elementu przycisku nadrzędnego.
Problem polega na tym, że w programie Firefox zdarzenie click nie uruchamia się dla żadnego z elementów span, tylko procedura obsługi zdarzeń przycisku rejestruje zdarzenie jako wyrzucone.
Oto skrzypce, dzięki czemu można zobaczyć, co mam na myśli: http://jsfiddle.net/spider/RGL7a/2/
Dzięki
Zgaduję, że to nigdy nie zostało rozwiązane? – Shane
@Shane Niestety nie i z tego, co widziałem, może nigdy nie być, ponieważ nadal nie działa w najnowszej wersji Firefoksa. Ramy takie jak Bootstrap robią to za pomocą [dwóch oddzielnych przycisków] (http://getbootstrap.com/components/#btn-dropdowns-split). Inne frameworki, jak Fundacja czy YUI, używają zupełnie innych znaczników do symulacji ** funkcji podzielonego przycisku ** ([Przykład Foundation] (http://foundation.zurb.com/docs/components/split_buttons.html) i [YUI Example ] (http://yuilibrary.com/yui/docs/node-menunav/node-menunav-4.html)). – Bogdan
Zwykle używam Boostrap dla tego rodzaju funkcjonalności i tam, gdzie to nie jest opcja, używam ich strategii, ponieważ wydaje się ona najlepsza pod względem semantycznego znacznika. – Bogdan