jQuery $('html, body').non()
ici - Je veux alerter de se produire lorsque vous cliquez sur n'importe où mais pas sur la div.
Quand je clique sur les div, les alertes montre trop.
JS
$("html, body").not('.entry-content').click(function() {
alert('d');
});
HTML
<div class="entry-content"> kkkk </div>
Cela ne fonctionne pas car le
.not('.entry-content')
ne s'arrête pas le cas de remontée pour le corps et le html nœuds.
OriginalL'auteur Adarchy | 2012-10-18
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser l'argument d'événement pour voir ce que la cible a été cliqué et retournera false
http://jsfiddle.net/keyZw/
Vous êtes en utilisant le .non() filtre.. mais c'est toujours une partie de votre code html/corps.. si vous avez besoin de le gérer à l'intérieur de la fonction de clic. Aussi, vous êtes juste de liaison de l'événement de clic..
Donc
Donc ça ne les empêche pas l'alerte de votre div est toujours à l'intérieur du corps
Comme mentionné.. vous avez seulement besoin de se lier au corps vraiment
e
paramètre, mais dans le corps, vous êtes à l'aide deevent
😉merci.. il fixe
Aussi, ne pas faire
html, body
(il n'y a pas de raison de le faire et ça crée deux événements de clic, il suffit de faire$('body').on('click')
Même remarque que pour Zoltan réponse : je voudrais supprimer le html ou le corps, comme nous l'avons souvent deux alertes...
ensuite, utilisez
html
seulement. si vous utilisez à la fois et cliquez sur le bouton droit de la div, vous aurez deux alertes !OriginalL'auteur ᾠῗᵲᄐᶌ
DÉMO
Le code d'origine ne fonctionne pas car la
.not()
s'applique à la sélecteurs en face d'elle -html
etbody
. Aucun des deux n'a la classe deentry-content
, de sorte que l'événement se déclencheyep Rajat Singhal, je voulais juste vous demander ce.
Cela ne fonctionnera pas si il y a plus d'une classe.
Plus d'une classe n'était pas une partie de la question. Ni pourquoi n'est-ce pas le code de travail.
Il suffit de pointer un défaut à cette réponse - la réponse à l'aide
hasClass()
n'a pas ce défaut. Penser à l'avenir. Aussi, la question n'est pas précise, de sorte qu'il vaut la peine de mentionner.OriginalL'auteur Zoltan Toth
Vous pouvez également arrêter la propagation sur l'élément cliqué
Travaille également en cliquant sur un sous-élément
Découvrez la Violon
OriginalL'auteur Pierre de LESPINAY
Le problème, c'est que vous êtes en train d'ajouter l'événement click pour le HTML et les balises de CORPS. Alors, tout d'abord, vous allez obtenir 2 alertes lorsque vous cliquez dans la zone de votre corps. Aussi, en raison de la façon dont les événements se propager jusqu', en cliquant sur le DIV en question propager l'événement click à corps et html. Donc, vous avez besoin de faire une vérification à l'intérieur du gestionnaire de clic afin de déterminer si vous souhaitez ou non afficher le message d'alerte.
J'ai modifié votre jsfiddle ci-dessous pour inclure uniquement en HTML dans votre sélection, et de vérifier pour la
entry-content
de la classe dans le gestionnaire.http://jsfiddle.net/m2eqS/6/
La différence entre la liaison de l'HTML et du CORPS, c'est que si vous voulez être en mesure de cliquer n'importe où sur la page, en dessous de laquelle le contenu/corps se termine, vous devez utiliser le format HTML. Sinon, l'utilisation du CORPS.
OriginalL'auteur Shawn Steward