Проблема с onClick () и средняя кнопка на мыши

<a href="<?=$rowz[0]?>" onClick="countLinks('<?=$row[6]?>','<?=$indexl?>')">[Link <?=$j++?>]</a>

Проблема состоит в том, что это не работает со средней кнопкой на IE или Firefox. На самом деле, countLinks использование средней кнопки называют только с хромом.

Я думаю, что мне нужна функция JQuery как mouseup событие, просто я не знаю, как вызывают ту функцию, которую оно вызывает countLinks с теми параметрами параметров.

Какая-либо справка?

5
задан Garf365 6 September 2016 в 08:11
поделиться

2 ответа

Вы правы. Вам нужно событие mousedown или mouseup, чтобы определить, какая кнопка мыши была нажата.

Но прежде всего вам нужно избавиться от обработчика событий inline onclick и пойти по сияющей дороге ненавязчивого javascript.

Для этого вам нужно дать этому якорю тег id или class, чтобы идентифицировать его (конечно, вы также можете выбрать этот якорь с помощью селектора css). Предположим, мы добавили класс с именем myClazzz :)

javascript:

$(function(){
    $('.myClazzz').bind('mouseup', function(e){
        switch(e.which){
           case 1:
              alert('Left Mouse button pressed.');
           break;
           case 2:
              alert('Middle Mouse button pressed.');
           break;
           case 3:
              alert('Right Mouse button pressed.');
           break;
           default:
              alert('You have a strange Mouse!');
        }
    });
});

Свойство which в обработчике событий mousedown / mouseup будет содержать число, указывающее, какая кнопка мыши была нажата.

6
ответ дан 14 December 2019 в 01:00
поделиться

Вот быстрое решение для вас, используя некоторые html5 атрибуты... На самом деле это было возможно и до html5, но не было валидации.

Я бы создал ссылки следующим образом:

...

_здесь мы помещаем ваши параметры в data атрибуты

и пишем js следующим образом:

$(function(){
    //use mouseup, then it doesn't matter which button 
    //is clicked it will just fire the function
    $('.myClazzz').bind('mouseup', function(e){
        //get your params from data attributes
        var row   = $(this).attr("data-row"),
            index = $(this).attr("data-index");

        //and fire the function upon click
        countLinks(row,index);
    });
});
//don't forget to include jquery, before these lines;)

Надеюсь, это сработает. Синан.

PS myClazzz -> кредиты получает jAndy :)

2
ответ дан 14 December 2019 в 01:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: