2013-03-22 27 views
5

Tôi biết điều này khác nhau giữa các trình duyệt; ví dụ. Nếu tôi đính kèm một chức năng vào sự kiện onclick và onchange của một nút radio, sau đó nhấp vào nó, Chrome sẽ kích hoạt onchange sau đó onclick, trong khi Firefox thì ngược lại.những sự kiện nào có thể kích hoạt khi nhấn nút radio?

Có tài nguyên nào mà mọi người biết về điều đó vi phạm trình tự kích hoạt này theo trình duyệt không?

+1

FYI: Ngay cả sử dụng jQuery sự các sự kiện theo thứ tự khác nhau tùy thuộc vào trình duyệt. –

+0

Không thể thay đổi thứ tự kích hoạt, nhưng bạn có thể kiểm tra 'event.type' và" chuyển hướng "đến người tổ chức sự kiện mong muốn. – Teemu

+0

Tôi không thực sự cần * thay đổi * thứ tự (phiền toái vì sự khác biệt đó) - Tôi chỉ muốn biết điều gì sẽ xảy ra, và tự hỏi liệu có ai khác đã vạch ra nó trước khi chạy thử nghiệm không. –

Trả lời

0

Dưới đây là một JSFiddle sẽ cho bạn biết nếu bạn chạy nó trong mỗi trình duyệt:

http://jsfiddle.net/BUkHz/

<label for="myRadio">Radio Button</label><input type="radio" name="myRadio" id="myRadio"/> 
<label for="myRadio">Radio Button 2</label><input type="radio" name="myRadio" id="myRadio2"/> 




var myRadio = document.getElementById('myRadio'); 
    var myRadio2 = document.getElementById('myRadio2'); 

    myRadio.addEventListener('change', interceptRadioEvent); 
    myRadio.addEventListener('click', interceptRadioEvent); 
    myRadio2.addEventListener('change', interceptRadioEvent); 
    myRadio2.addEventListener('click', interceptRadioEvent); 

    function interceptRadioEvent(e){ 
     //do anything else you want to here... 
     radioEventHandler(e); 
    } 

    function radioEventHandler(e){ 
     console.log(e.type); 
    } 

Tôi có một linh cảm rằng thứ tự phụ thuộc vào những gì bạn đang làm - ví dụ nếu bạn chỉ có một nút radio khi nhấp vào lần đầu tiên nó sẽ là: thay đổi, nhấp vào sau đó nhấp chuột tiếp theo sẽ là 'nhấp' chỉ khi nó phản hồi nhấp chuột nhưng không thể bỏ đặt nó.

Tôi hy vọng điều đó sẽ hữu ích.

Trên máy Mac:

Chrome: thay đổi sau đó nhấn

Safari: thay đổi sau đó nhấn

iOS (6): thay đổi sau đó nhấn

+0

Tôi đã hy vọng một người khác đã thử nghiệm nó cho tôi - nhưng yeah, bạn nói đúng, một cái gì đó như thế này sẽ hoàn toàn vạch ra những lệnh bắn. –

+0

Có vẻ như điều đó không hiệu quả đối với tôi. sự kiện tôi đã kiểm tra mã mà bạn đăng trên fiddle. phiên bản chrome 31.0.16: Thay đổi -> nhấp vào Phiên bản Firfox 25.0.1: nhấp-> thay đổi và có quên đề cập đến os là Windows nhưng tôi đoán điều đó không phải là vấn đề –

Các vấn đề liên quan