6
votes

Déterminer si un élément est un widget JQueryui

J'ai écrit un widget JQuery-UI à l'aide de l'usine de widget ...

Je dois être capable de déterminer en code si l'élément est déjà un widget ou non ... P>

My Widget de globalGrid est créé sur #Container avec P>

 $('#container').investmentGrid()


0 commentaires

5 Réponses :


1
votes

@boycs: selon ma compréhension, l'utilisation d'une usine de widget vous protège de l'instanciation d'un plugin plusieurs fois sur le même élément. (ref: http://jqueryui.pbworks.com/widget-factory )

En outre, si vous souhaitez confirmer si "conteneur" est déjà une grille d'investissement, vous pouvez essayer l'option suivante de l'intérieur de votre code plug-in:

this.element.data ("InvestmentGrid") === cela;

Pour plus de détails, vous pouvez vous référer à docs.jquery.com/ui_developer_guide


2 commentaires

Merci ... Je n'ai peut-être pas été clair dans ma question initiale ... Je dois être capable de déterminer de l'extérieur de mon code plugin si $ ou non ('# conteneur') est déjà une globalgrid ou non ...


Pouvez-vous partager avec moi pourquoi vous auriez besoin d'établir si "conteneur" est déjà une globalGrid ou non? Cela m'aidera à répondre plus précisément. Merci



7
votes

Vous pouvez interroger la fonction jquery.data () de l'élément () , comme: xxx


0 commentaires

5
votes

Vous pouvez essayer le sélecteur pseudo qui est créé pour vous lors de l'utilisation de l'usine de widget. $ (": nomspace-widgetname")


0 commentaires

3
votes

@ Dan-Story a peut-être eu la réponse à l'époque où il répondit, mais j'ai constaté que cette méthode ne fonctionne plus. Eh bien, pas entièrement. Au moins pas avec jqueryui 1.10. Selon la documentation chez http://api.jqueryui.com/jquery.widget/ dans La section "instance", vous devez maintenant avoir le nom complet du widget.

Par exemple, si vous créez votre usine de widget avec ceci: p> xxx pré>

alors, pour vérifier Si le conteneur l'a dit, vous vérifieriez avec ceci: P>

if ($('#container').data('Boycs-investmentGrid'))
{
    ...
}


0 commentaires

1
votes

Les versions actuelles de JQuery Ui (je peux le confirmer avec 1.11.x) vous permettent d'interroger une instance d'un widget via l'instance instance () . Cela ressemblera alors à ceci: xxx

si l'élément ne dispose pas d'un widget de attribué, vous obtiendrez non défini arrière. < / p>

Vous pouvez également utiliser appelez cela à la place: xxx

Ceci a l'avantage, qu'il fonctionne également même lorsque le widget n'est pas chargé.


0 commentaires