Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Нажатие колесика мышки (https://javascript.ru/forum/jquery/35265-nazhatie-kolesika-myshki.html)

Quieteroks 05.02.2013 14:17

Нажатие колесика мышки
 
Здравствуйте.

Я реализовал в таблице возможность нажатия на строку через jQuery дабы не делать кучу ссылок для каждой ячейки.
jQuery('tr[data-href]').addClass('tr-link').click(function() {
	window.location = jQuery(this).attr('data-href');
});


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

Возможно ли это сделать?
Потому что e.which == 2 в моем случае не отлавливается, не знаю почему. Создается курсор движения...

Deff 05.02.2013 15:01

Цитата:

Сообщение от Quieteroks
Потому что e.which == 2 в моем случае не отлавливается, не знаю почему. Создается курсор движения...

По разному в разных браузерах http://javascript.ru/tutorial/events/mouse

danik.js 05.02.2013 15:01

Цитата:

Сообщение от Quieteroks
моем случае не отлавливается, не знаю почему

Потому что нужно отменить действие по умолчанию по событию onmousedown.
.mousedown(function(e){e.preventDefault()});

Quieteroks 05.02.2013 15:18

Deff,
Я так и подумал, но вот желательно чтоб везде же работало... Не я один то работаю на сайте.
danik.js,
Спасибо. Но все равно курсор создается.

В общем работает вот так (но с поправками на ветер):
jQuery('tr[data-href]').addClass('tr-link').bind("mousedown", function(e) {
	if(e.which == 1) {
		window.location = jQuery(this).attr('data-href');
	} else {
		window.open(jQuery(this).attr('data-href'));
	}
	e.preventDefault();
}).bind("contextmenu",function(e){
	e.preventDefault();
});

Т.е. если клик был не левой кнопкой, то соответственно новое окно...

danik.js 05.02.2013 15:23

Цитата:

Сообщение от Quieteroks
Но все равно курсор создается

А в каком это браузере так?

Quieteroks 05.02.2013 15:34

danik.js,
Opera.
Хром нормульно вроде обрабатывает.
Мозилы нет, чтоб проверить....

danik.js 05.02.2013 15:40

Блин, точно. Опера как всегда со своими замутами. Достала уже..

Deff 05.02.2013 17:48

В Опере отлавливал как то средний клик, а Вот с курсором в Опере геммор

Делал чисто курсор картинкой Drag and drop, а истинный курсор переводил в крестик( если картинку правильно слелать, то крест не заметен


Часовой пояс GMT +3, время: 08:37.