Jquery: сделать весь блок кликабельным, сохраняя при этом возможность открытия в новой вкладке / окне


Я не хочу использовать css для расширения ширины/высоты ссылки и т. д.

С моим кодом вся LI кликабельна, она открывает ссылку a, найденную в ней. Я сохранил средний щелчок мыши, чтобы открыть ссылку в новом окне.

  1. Мне интересно, если кто-то, кто действительно на самом деле знает, что они делают. можете направлять меня в этом и дайте мне знать если это лучший способ писать это, или есть изменения, которые можно было бы внести в мой код?

  2. Также: может кто-то помогите мне добавить а "ctrl+щелчок левой кнопкой мыши", чтобы открыть ссылку в новом окне, которое то же самое вещь средняя-щелчок Кнопкой Мыши делает, я просто не знаю, как проверить для ctrl? Я думал, что меняю else if ((e.which == 2)) { часть к else if ((e.which == 2) && (e.which == 16)) { будет работать, но это не так.

Код:

$('li a').each(function() {
            $(this).parent().bind('click', function(e) {
                if((e.which == 1)) {
                    alert('left mouse button clicked')
                    window.location=$(this).find("a").attr("href"); return false;
                }
                else if ((e.which == 2)) {
                    alert('middle mouse button clicked')              

                        window.open($(this).find('a').attr('href'));
                        return false;  
                }
            });
        });
1 3

1 ответ:

Вот ваше руководство по определению того, какие клавиши нажимаются (это все через входящее событие): http://www.quirksmode.org/js/keys.html

Обратите внимание, что в OSX это невозможно в большинстве браузеров.