J'utilise l' onclick
événement d'un lien haché pour ouvrir <div>
un pop-up. Mais le clic du milieu ne déclenche pas l' onclick
événement mais prend uniquement la href
valeur d'attribut du lien et charge l'URL dans une nouvelle page. Comment puis-je utiliser le clic du milieu pour ouvrir le en <div>
tant que popup?
javascript
jquery
Sadesh Kumar N
la source
la source
Réponses:
ÉDITER
Cette réponse est obsolète et ne fonctionne pas sur Chrome. Vous finirez probablement par utiliser l' événement auxlink , mais veuillez vous référer aux autres réponses ci-dessous.
/ÉDITER
La réponse de beggs est correcte, mais il semble que vous vouliez empêcher l'action par défaut du clic du milieu. Dans ce cas, incluez les éléments suivants
preventDefault () arrêtera l'action par défaut de l'événement.
la source
.live
été abandonné et supprimé au profit de.on
2
?Pour que le bouton du clic central / molette de la souris soit détecté, vous devez utiliser l'événement
auxclick
. Par exemple:Puis dans votre fichier script
Si vous voulez le faire à partir de JavaScript (sans utiliser l'attribut HTML
onauxclick
), alors vous allezaddEventListener
à l'élément:Consultez la page mdn sur l'
auxclick
événement ici .la source
if(event.button==1)
clause, c'est la seule réponse de travail.auxclick
événement et vérifier la valeur dee.button == 1
. J'ai édité la réponse.Vous pouvez utiliser
event.button
pour identifier le bouton de la souris sur lequel vous avez cliqué.
Renvoie une valeur entière indiquant le bouton dont l'état a changé.
Notez que cette convention n'est pas suivie dans Internet Explorer: voir QuirksMode pour plus de détails.
L'ordre des boutons peut être différent en fonction de la configuration du périphérique de pointage.
Lire aussi
Quel bouton de la souris a été cliqué?
la source
event.which
car il a été standardisé sur tous les navigateurs dans la source jQuery - ligne 2756 -if ( !event.which && event.button ) event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
MouseEvent.which
n'est défini dans aucune spécification, maisMouseEvent.button
est défini dans les événements DOM L2.event.which
mais j'aurais dû préciser que celaMouseEvent.which
ne fait pas partie de la spécification officielle.Je déteste généralement quand les gens proposent des alternatives au lieu de solutions, mais comme des solutions ont déjà été fournies, je vais enfreindre ma propre règle.
Les sites Web où la fonction de clic du milieu est annulée ont tendance à vraiment, vraiment me déranger. Je clique généralement avec le milieu parce que je souhaite ouvrir le nouveau contenu dans un nouvel onglet tout en ayant une vue dégagée du contenu actuel. Chaque fois que vous pouvez laisser la fonctionnalité de clic central seule et rendre le contenu pertinent disponible via l'attribut HREF de votre élément cliqué, je crois fermement que c'est ce que vous devez faire.
la source
jQuery fournit un
.which
attribut sur l'événement qui donne l'ID du bouton de gauche à droite comme 1, 2, 3. Dans ce cas, vous voulez 2.Usage:
La réponse d'Adamantium fonctionnera également, mais vous devez faire attention à IE comme il le note:
Rappelez-vous également que l'
.button
attribut est indexé 0 et non indexé 1 comme.which
.la source
Cette question est un peu ancienne, mais j'ai trouvé une solution:
Chrome ne déclenche pas l'événement "clic" pour la molette de la souris
Travailler dans FF et Chrome
la source
e.preventDefault()
est appelé.La méthode appropriée consiste à utiliser
.on
, comme cela.live
a été déconseillé, puis supprimé de jQuery:Ou si vous voulez la sensation "en direct" et
#foo
n'est pas sur votre page au début du document:réponse originale
la source
click
ne fonctionne pas pour le bouton central de la souris dans les navigateurs comme Firefox et Chrome.Je sais que je suis en retard pour la fête, mais pour ceux qui ont encore des problèmes avec la gestion du clic du milieu, vérifiez si vous déléguez l'événement. En cas de délégation, l'
click
événement ne se déclenche pas. Comparer:Cela fonctionne pour les clics du milieu:
Cela ne fonctionne pas pour les clics du milieu:
Si vous avez toujours besoin de suivre le clic du milieu à l' aide de la délégation d'événements , le seul moyen de contourner, comme indiqué dans le ticket jQuery correspondant , est d'utiliser
mousedown
ou à lamouseup
place. Ainsi:Cela fonctionne pour les clics intermédiaires délégués:
Consultez-le en ligne ici .
la source
click
ne fonctionne pas pour les clics du milieu comme dans votre premier exemple.