Dlaczego kliknięcie środkowe nie uruchamia „kliknięcia” w kilku przypadkach?

Tutaj jestJSFiddle zachowania, które widzę, związane z kliknięciem środkowym iclick wydarzenie w Chrome i FF.

„kliknij” trochę działa

Podejście 1: Bind aclick przewodnik bezpośrednio doa element i środkowe kliknięcie wywoła obsługę w Chrome, ale nie w FF.

$('div a').on('click', function(ev) {
    // middle click triggers this handler
});

Podejście 2: Powiąż delegowanegoclick handler do adiv który zawiera jeden lub więceja. Środkowe kliknięcie będzienie uruchom ten program obsługi w Chrome lub FF.

$('div').on('click', 'a', function(ev) {
    // middle click doesn't trigger this handler
});

To podejście jest niezwykle cenne, jeśli div zaczyna się pusty ia elementy są wypełniane później przez wywołanie AJAX lub w wyniku pewnych danych wprowadzonych przez użytkownika.

„mouseup” działa

Za pomocąmouseup zamiastclick powoduje, że oba podejścia 1 i 2 działają w obu przeglądarkach.

// Approach 1 w/ mouseup
$('div a').on('mouseup', function(ev) {
    // middle click **does** trigger this handler in Chrome and FF
});

// Approach 2 w/ mouseup
$('div').on('mouseup', 'a', function(ev) {
    // middle click **does** trigger this handler in Chrome and FF
});

Tutaj jestJSFiddle zmouseup.

Jest to interesujące i może być przydatne w niektórych przypadkach, ponieważmouseup jest prawieclick. Alemouseup nie jest clicki jestem po zachowaniuclick. Nie chcę tworzyć hackymousedown; setTimeout; mouseup symulacjaclick.

Jestem pewien, że odpowiedź brzmi „nie”, ale czy istnieje sposób, aby wywołać środkowe kliknięcieclick obsługiwać? Jeśli nie, jakie są tego powody?

questionAnswers(3)

yourAnswerToTheQuestion