Почему средний щелчок не вызывает щелчок в нескольких случаях?

Вот'сJSFiddle поведения явидя, касаясь среднего щелчка иclick событие в Chrome и FF. '

нажмите» своего рода работы

Подход 1: Привязатьclick обработчик непосредственно кa Элемент и средний щелчок вызовут обработчик в Chrome, но не в FF.

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

Подход 2: Связать делегированныйclick обработчикdiv который содержит один или несколькоa, Средний щелчок будетне вызвать этот обработчик в Chrome или FF.

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

Этот подход чрезвычайно полезен, если div начинается с пустогоa элементы заполняются позже с помощью вызова AJAX или в результате некоторого пользовательского ввода. '

MouseUp» работает

С помощьюmouseup вместоclick заставляет оба подхода 1 и 2 работать в обоих браузерах.

// 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
});

Вот'сJSFiddle с .mouseup

Это интересно и может быть полезно в некоторых случаях, потому чтоmouseup почтиclick, Ноmouseup не click, и я'м после поведенияclick, Я не хочу создавать хакиmousedown; setTimeout; mouseup симуляция .I 'click

Я уверен, что ответ "Нету", но есть ли кросс-браузерный способ вызвать срабатывание среднего щелчкаclick обработчики? Если нет, то каковы причины?

Ответы на вопрос(3)

Ваш ответ на вопрос