Un événement déclencheur, à l'aide de Jquery sur le CSS changement?
Je suis curieux de savoir est-il un écouteur d'événement ou peut-être un moyen de construire une méthode qui se déclenchent quand un CSS changement se produit?
Ma feuille de style utilise les media queries et je veux savoir si il y a un moyen d'attacher un écouteur à voir lors de ces requêtes de média coup de pied dans et hors. Par exemple, j'ai une requête de média qui cache un bouton à certaines largeurs d'écran
@media screen and (max-width: 480px) {
#search-button {
display: none;
}
}
Ce que l'écouteur d'événement aurais-je utiliser pour détecter lorsque que l'affichage change? Je suis en train de le faire:
$(window).resize(function() {
if($('#search-button').css("display") == "none") {
//do something
} else {
//do something else
}
});
Qui fonctionne très bien, mais il invite l'auditeur à chaque fois que l'utilisateur change l'écran et je préfère l'avoir juste déclenche uniquement lorsque la css du bouton change. J'espère qu'un sens.
par exemple c'est ce que j'aimerais
$('#search-button').cssEventListenerOfSomeKind(function() {
alert('the display changed');
});
OriginalL'auteur Brodie | 2011-12-29
Vous devez vous connecter pour publier un commentaire.
De liaison à la
window.resize
est votre meilleure option (je crois). Il n'est pas tout événement déclenché lorsque vous modifiez un élément de la CSS. Cependant, vous pouvez optimiser un peu par la mise en cache le sélecteur utilisé:Ou vous pouvez utiliser
$(window).width()
pour vérifier la largeur de la fenêtre d'affichage:Mise à JOUR
Vous pouvez toujours l'accélérateur de votre propre gestionnaire d'événement:
Cela permettra d'éviter le code dans votre
resize
gestionnaire d'événement à partir de l'exécution de plus d'une fois à chaque quart de seconde.Check-out de mon mise à jour, si vous étrangler le
resize
gestionnaire d'événements, vous pouvez réduire la surcharge du PROCESSEUR lorsque l'utilisateur est en cours de redimensionnement du navigateur.Vous avez supprimé votre post, mais je pensais que c'était un lien utile (il ne peut pas être bien pris en charge dans les navigateurs, mais il est toujours bon de l'information): stackoverflow.com/questions/1397251/...
OriginalL'auteur Jasper
Si elle est à seulement une heure de l'événement, vous pouvez essayer de séparer l'événement.
http://api.jquery.com/unbind/
À partir de ce "Qui fonctionne très bien, mais il invite l'auditeur à chaque fois que l'utilisateur change l'écran et je préfère l'avoir juste déclenche uniquement lorsque la css du bouton change". Il sonnait comme votre problème était que l'événement a été récurrentes. Peut-être que je m'ennuie de le comprendre, mais si vous ne voulez pas le cas pour continuer à tirer, vous pourriez essayer de déliaison de l'événement et de reliaison.
OriginalL'auteur Kris Hollenbeck
Je sais c'est vieux mais j'ai réussi à le résoudre avec cette logique
OriginalL'auteur lemonSkip