Показать сообщение отдельно
  #1 (permalink)  
Старый 17.08.2012, 06:29
Новичок на форуме
Отправить личное сообщение для LMnet Посмотреть профиль Найти все сообщения от LMnet
 
Регистрация: 08.09.2011
Сообщений: 5

Проблема с событием клика в Firefox
Здравствуйте. Делаю следующее: при клике на ссылку должен отправляться 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. Но все равно, происходит просто переход по ссылке, результата аяксового запроса я не наблюдаю.

Последний раз редактировалось LMnet, 17.08.2012 в 06:48.
Ответить с цитированием