9
votes

Comment utiliser 'si $ (ceci) a l'attribut de données'

Je suis avec un petit problème. J'ai quelques boutons, chacun avec un autre fonction de données-fonctions = "" attribut. Je veux exécuter un petit script pour vérifier lequel des boutons a été cliqué. xxx

Je veux simplement un script qui dit xxx

J'ai essayé beaucoup de choses, mais tout ne semble pas fonctionner , y compris

si ($ ($ (ceci) .attr ("fonction de données", "blogfonctionaliteit") {} - qui entraîne un oui, toujours, comme il vérifie que Si l'objet a le premier paramètre, au lieu de les vérifier tous les deux.

Merci d'être rédigé pour écrire le code JQuery correct ou vous conseillerez d'utiliser quelque chose d'autre.


0 commentaires

4 Réponses :


7
votes

Vous pouvez faire:

if ($(this).attr('data-function') == 'blogFunctionaliteit') { }


3 commentaires

Je viens de quitter mon ordinateur pour une promenade, des pensées fraîches et une pensée "Si c'est indiqué, oui, il a un attribut, alors je dois demander si cet attribut de données est égal à une chaîne", comme votre morceau de code. Quelle est la facilité de retour si cela le résout, bien que je sois assez sûr. Merci!


@Sanderschaefer ça me passe habituellement aussi: p


Idk mais c'est du travail et la réponse de l'ACC est fausse pour moi



21
votes

Pour le court chemin, essayez ceci:

var self = this;
var $self = $(self);
var dataFunction = $self.attr('data-function');

switch (dataFunction) {
  case 'blogFunctionaliteit':
    // TODO: enter your code...
    break;
  case 'offerteFunctionaliteit':
    // TODO: enter your code...
    break;
  case 'overzichtFunctionaliteit':
    // TODO: enter your code...
    break;
  default:
    // do nothing
    break;
}


2 commentaires

Connaissez-vous par une chance d'utiliser .Data () au lieu de .attr ('data- ') affecte les performances, ou est la seule différence de performance de quelques caractères de code moins? Merci!


'.Data ()' vient de JQuery donc je suppose que c'est la meilleure performance de faire vos affaires, mais cela ne signifie pas ".attr (" data- ')' est pire ... tout Dans tout ce que je pense, vous ne trouverez aucune différence de performance entre ces deux manières;)



2
votes

Votre erreur est que vous utilisez l'attribut de fonction afin d'appliquer certaines modifications apportées à l'attribut. Au lieu de cela, je pense que vous voulez vérifier si la valeur d'attribut est celle que vous voulez. C'est donc ce que vous devriez faire:

if ($(this).attr('data-function') === 'blogFunctionaliteit') {
    //bla bla
}


1 commentaires

Tout comme je l'ai écrit @felix, je viens de quitter mon ordinateur pour une promenade, des pensées fraîches et une pensée "Si c'est indiqué, il a un attribut, alors je devrais demander si cet attribut de données est égal à une chaîne", tout comme votre morceau de code =) merci!