Почему не срабатывает событие щелчка после события mouseDown при срабатывании того же элемента?

У меня есть событие mouseDown и событие click для одного и того же элемента. Когда я щелкаю по нему, событие mouseDown срабатывает (т. Е. Выдает предупреждение "Мышь нажата на P"), а событие щелчка - нет. Однако, если я закомментирую оператор оповещения mouseDown, событие click отображает его предупреждение. Почему это? http://jsfiddle.net/A8vhq/

3 ответа

Решение

Это происходит потому, что щелчок никогда не происходит, когда появляется окно предупреждения, оно прерывает событие mouseup на элементе, таким образом прерывая щелчок мышью.

использование console.log('message') проверить свой код вместо alert,

Вместо alertиспользовать console.log и это будет работать.

Живая демоверсия: http://jsfiddle.net/A8vhq/1/


Кстати, я немного переработал код:

$('p').on('mousedown', function (e) {
    console.log('Mouse pressed on ' + e.target.nodeName);
});

$('p').on('click', function (e) {
    console.log(e.target.nodeName + ' clicked');
});

Просто замени alert с console.log или любой другой немодальный способ вывода.

Другие вопросы по тегам