11
votes

Comment vérifier si un plugin UI JQuery est attaché à un élément?

Comment puis-je vérifier si un plugin UI jQuery est attaché à un élément? Par exemple, si je charge le widget .Sortable, comment sa présence peut-elle être déterminée?

Le but de cette question est que je souhaiterais la possibilité de basculer .Sortable sur des éléments. Avec la possibilité de voir cela .Sortable est présent, je pourrais alors appeler .Sortable («détruire») pour le supprimer.


0 commentaires

5 Réponses :


1
votes

Tous les widgets d'interface utilisateur ont reçu la classe ui-widget . Typiquement, chaque widget ajoute également la classe widget à l'élément principal. Dans ce cas, vous devriez voir ui-tri-tri ajouté au conteneur triable.


0 commentaires

13
votes

Tous les widgets d'interface utilisateur attachent leur nom aussi fidèle aux données du conteneur de l'élément. Jqueryui ajoute également une expression de filtre de données.

var $elem = $('div.sortable-container:data(sortable)');
if ($elem.length){
  // $elem contains list of elements that have sortable widget attached
}


2 commentaires

Vérification Si un style CSS est appliqué est excellent, mais cela est un peu plus explicite et je l'aime. Merci Corey!


Grande solution, et je suis surpris que cela ait pris autant de récurer le Web tel qu'il l'a fait, pour le découvrir. J'aurais bien qu'ils auraient plus évident que cela se produit?



2
votes

Si quelqu'un cherche cette solution dans les versions ultérieures de JQueryui, le nom du plugin triviateur de données est maintenant uisortable et non trié. Je suis en utilisant jQueryui 1.10

Ie pour trouver des éléments u peut utiliser xxx

et pour trouver des éléments qui ne sont pas encore initialisés xxx


0 commentaires

5
votes

Depuis JQuery UI 1.8, Selectors spéciaux sont ajoutés à grésillement pour chaque widget . Celles-ci sont sous la forme de : UI-widgetName .

Pour vérifier la présence d'un widget triable sur un élément, vous pouvez donc utiliser: xxx


0 commentaires

0
votes

Appelez simplement une instance de triable, si rendement indéfini, alors n'est pas chargé

<pre>
if (typeof $("ul.sortable").sortable('instance') != 'undefined') {
    //$.ui.sortable is loaded and called
} else {
    //call sortable
}
</pre>


0 commentaires