Désactiver la souris et des événements clés de la Div
J'ai plusieurs Html
éléments à l'intérieur d'un div
. Est-il possible de désactiver la souris et les principaux évènements de la Div(Pas pour les éléments individuels)? Les éléments sont générés automatiquement et sont à l'intérieur de plusieurs plages. Donc, je veux juste désactiver l'ensemble de la div, de sorte que rien ne peut être changé, mais readonly
.
Afficher votre code HTML..
Comme je l'ai mentionné ci-dessus les éléments sont générés automatiquement. Je peux juste l'id de la
Mais ne pouvez-vous pas montrer le prototype des éléments que vous générez?
ce sujet unbind fonction jquery?
Comme je l'ai mentionné ci-dessus les éléments sont générés automatiquement. Je peux juste l'id de la
div
rien de plus.Mais ne pouvez-vous pas montrer le prototype des éléments que vous générez?
ce sujet unbind fonction jquery?
OriginalL'auteur nebula | 2013-05-22
Vous devez vous connecter pour publier un commentaire.
Essayer avec .unbind() comme
il va supprimer tous les événements qui se joint à la div.Voir ce UNBIND
Vous pouvez utiliser .mourir aussi comme
OriginalL'auteur Gautam3164
Comme par jQuery docs, unbind méthode permet de supprimer un déjà-joint gestionnaire d'événement à partir des éléments. Ma compréhension est que vous voulez juste pour empêcher le navigateur par défaut des événements de déclenchement, au lieu de supprimer précédemment événements attachés.
Il est un simple CSS solution pour elle, qui ne fonctionne pas sur IE10 et ci-dessous:
Une solution à l'aide de jQuery serait l'ajout d'un événement à votre div, puis la prévention comportement par défaut de passe sur les événements de votre choix:
Cliquez sur les événements doivent également travailler pour le clavier de l'accès aux cases à cocher et des boutons radio, mais dans le cas où vous avez besoin, par exemple, empêcher le texte en tapant sur un champ de saisie, il suffit d'ajouter les événements de clavier à la liste:
Je suis en train de poster cette réponse, car elle pourrait aider d'autres personnes à la recherche pour des fonctionnalités similaires, mais je crois qu'il y a de meilleures façons de le faire sur votre cas. Vous pouvez exécuter une fonction pour définir vos éléments désactivé
$('#yourDiv input').prop("disabled", true);
après le chargement. Difficile à dire sans connaître le html.Belle prise @JackFairfield. J'ai mis à jour la réponse en fonction de ce tableau - caniuse.com/#feat=pointer-events
Ce n'est pas de désactiver les événements de clavier. Si vous souhaitez désactiver les événements de clavier, c'est parce que vous avez déjà auditeurs attachés. Si vous appliquez cette auditeur après ceux déjà fixés, les autres continuent de fonctionner, donc cela n'a aucun effet à tous en termes de désactivation des événements. L'annulation de l'action par défaut pour un événement n'est PAS la même chose que la désactivation des événements. Il est tout simplement pas. Si vous avez attaché cet écouteur premier, ou qu'il l'a attaché avec une priorité plus élevée que tous les autres événements, vous pouvez ensuite appeler stopImmediatePropagation, mais preventDefault est inutile pour ce problème.
À l'aide de
.on("click keypress")
doit bloquer le clavier et la souris, et c'est plus court.OriginalL'auteur Hugo Silva
Vous pouvez utiliser le unbind fonction jquery.
ou si vous voulez désactiver certains événements vous pouvez l'utiliser comme:
Aussi, vous pouvez prendre un coup d'oeil à jquery événement namespacing. Je pense que c'est probablement va être utile pour vous.
OriginalL'auteur Tom Sarduy
Je crois que vous pouvez lier un gestionnaire sur l'élément qui exécute
event.stopImmediatePropagation()
Aussi longtemps que cet événement se déclenche en premier, tous les autres ne feront pas le feu.
Malheureusement, il est pas possible définir manuellement des cas prioritaires.
Vous devez vous assurer que l'événement est défini en dernier dans la pile.
OriginalL'auteur Maxim Kumpan
Ici est un autre vieux truc.
Afin d'éviter tout contact avec la souris sur votre div, placez un autre div de la même taille sur le dessus (avec un z-index) avec une opacité de 0 (ou l'équivalent pour les anciens navigateur).
Vous déclenchez en changeant la propriété display none (par défaut) pour bloquer.
Lorsque la div a un affichage à bloc, il sera sur le dessus de votre div et de faire un mur entre la souris et de votre div.
Il pourrait ne pas être adaptée à votre page et css de l'architecture, mais si elle le fait, il est facile pour l'installation. 🙂
OriginalL'auteur Antoine Mouquod
Im en utilisant ce pour désactiver complètement sur pour tous de la fenêtre.
Est une superposition transparente panneau avec un grand z-Index, avec cela, vous ne pouvez pas cliquer n'importe où.
Et voici le css de la classe:
OriginalL'auteur Mikel
Peut être résolu par la CSS. Utilisez le code ci-dessous
OriginalL'auteur sujithuix
Cela a fonctionné comme je l'espérais:
OriginalL'auteur nicpas