<button>
요소가 있는데이 요소 안에 2 <span>
요소가 있습니다. 각 span 요소에 대해 2 개의 jquery click 이벤트 핸들러가 첨부되어 있으므로 각 클릭에 대해 원하는대로 할 수 있습니다. 여기에 기본 코드의 빠른 모습입니다 :jQuery 이벤트 버블 링이 Firefox에서 예상대로 작동하지 않습니다.
HTML은
<button>
<span>Text1</span>
<span>Text2</span>
</button>
자바 스크립트
$(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');
});
});
이 크롬에서 모든 작업 괜찮와 클릭 이벤트가 올바른 순서로 캡처 : 먼저 span 요소 중 하나를 클릭 한 다음 이벤트가 상위 단추 요소까지 거품을냅니다.
문제는 Firefox에서 click 이벤트가 span 요소에 대해 실행되지 않는다는 것입니다. 버튼 이벤트 핸들러는 이벤트가 시작되는 것으로 기록합니다. http://jsfiddle.net/spider/RGL7a/2/
감사
나는 이것이 결코 해결되지 않았을 것으로 생각하고 있습니까? – Shane
@Shane 불행히도 아니, 그리고 내가 본 적이없는 것에서는 이것이 결코 최신 파이어 폭스 버전에서 작동하지 않기 때문에 결코 존재하지 않을 수도 있습니다. 부트 스트랩과 같은 프레임 워크는 [두 개의 개별 버튼] (http://getbootstrap.com/components/#btn-dropdowns-split)을 사용하여 수행합니다. Foundation이나 YUI 같은 다른 프레임 워크는 ** 마크 업 ** 버튼 기능을 시뮬레이션하기 위해 다른 마크 업을 사용합니다 ([Foundation Example] (http://foundation.zurb.com/docs/components/split_buttons.html) 및 [YUI 예제 ] (http://yuilibrary.com/yui/docs/node-menunav/node-menunav-4.html)). – Bogdan
나는 보통 이런 종류의 기능을 위해 Boostrap을 사용한다. 옵션이 아닌 곳에서는 마크 업 시맨틱 측면에서 가장 좋은 전략으로 사용한다. – Bogdan