Здравствуйте. Делаю следующее: при клике на ссылку должен отправляться ajax запрос, и только после этого должен быть переход по ссылке. В опере и хроме все норм, а вот фаерфокс обрабатывает только нажатие на среднюю кнопку. Вот код:
function clickHandler(event){
var request = '';
request = '/ajax/events/show_drop/'+user_id+'/'+$(this).data('event_id');
$.get( request );
}
$('#event_window a[data-event_id]').mousedown(function(event){
if( event.which == 1 || event.which == 2 ){
event.preventDefault();
if( event.which == 2 ){
//тут средняя кнопка обрабатывается
clickHandler.call(this, event);
}
}
}).mouseup(function(event){
if( event.which == 1 || event.which == 2 ){
event.preventDefault();
if( event.which == 1 ){
//тут левая кнопка обрабатывается
clickHandler.call(this, event);
window.location = $(this).attr('href');
}
}
});
Отдельные обработчики для mousedown и mouseup сделано потому, что левая кнопка должна смотреть на событие mouseup, а средняя на mousedown.
Когда я смотрел в firebug, почему-то событие mouseup даже не вызывалось при клике на ссылку. Я добавил костыль вот такого вида:
mousedown(function(event){
if( event.which == 1 || event.which == 2 ){
event.preventDefault();
if( event.which == 2 ){
//тут средняя кнопка обрабатывается
clickHandler.call(this, event);
}else if($.browser.mozilla){
//тут левая кнопка обрабатывается, фаерфокс почему-то не вызывает mouseup
clickHandler.call(this, event);
window.location = $(this).attr('href');
}
}
})
То есть добавил обработку запроса внутри события mousedown. Но все равно, происходит просто переход по ссылке, результата аяксового запроса я не наблюдаю.