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()
5 Réponses :
@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 ) P >
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: p>
this.element.data ("InvestmentGrid") === cela; p> blockQuote>
Pour plus de détails, vous pouvez vous référer à docs.jquery.com/ui_developer_guide p>
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
Vous pouvez interroger la fonction jquery.data () de l'élément () code>, comme:
Vous pouvez essayer le sélecteur pseudo qui est créé pour vous lors de l'utilisation de l'usine de widget. $ (": nomspace-widgetname") code> p>
@ 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> alors, pour vérifier Si le conteneur l'a dit, vous vérifieriez avec ceci: P> if ($('#container').data('Boycs-investmentGrid'))
{
...
}
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 si l'élément ne dispose pas d'un widget Vous pouvez également utiliser appelez cela à la place: p> Ceci a l'avantage, qu'il fonctionne également même lorsque le widget n'est pas chargé. P> p> instance () code>. Cela ressemblera alors à ceci:
de code> attribué, vous obtiendrez
non défini code> arrière. < / p>