Jquery: сделать весь блок кликабельным, сохраняя возможность открываться в новой вкладке / окне - PullRequest
3 голосов
/ 22 марта 2011

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

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

  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 Ответ

1 голос
/ 22 марта 2011

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

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

...