2010-03-19 3 views
3

Je développe une application en utilisant jQueryUI. J'utilise aussi le Themeroller. Je souhaite que le plus grand nombre de mes styles soit défini en utilisant le thème, de sorte que si j'ai besoin de changer certains styles, je dois simplement créer un nouveau thème personnalisé (ou télécharger un thème existant). J'essaie d'utiliser l'interaction «sélectionnable» dans jQueryUI. Il fonctionne comme il se doit - dans Firebug, je peux voir la classe "ui-selected" appliquée à l'élément que je sélectionne. Cependant, il n'y a aucune indication visuelle que l'élément a été sélectionné. J'ai regardé dans le fichier CSS de thème (jquery-ui-1.8rc3.custom.css, que j'ai téléchargé à partir du Themeroller page), et je ne vois aucune déclaration pour la classe "ui-selected". Quand j'ai téléchargé jQueryUI et le thème, j'ai vérifié chaque option, y compris celle pour "sélectionnable".jQueryUI sélectionnable: impossible d'appliquer le thème à l'élément sélectionné (classe "ui-selected")

Comment puis-je faire en sorte que mon thème définisse la classe "ui-selected"? Évidemment, je pourrais juste créer ma propre déclaration de style, mais cette solution n'est pas idéale si jamais je veux changer le thème. J'utilise jQuery 1.4.2 et jQueryUI 1.8rc3.

Répondre

1

Désolé la réponse est nulle, mais vous ne pouvez pas.

C'est une fonctionnalité que le ThemeRoller aurait dû ajouter, rien que vous puissiez faire pour l'ajouter automatiquement à ses styles générés.

Si vous regardez le demo pages, ils font aussi manuellement les déclarations de style pour .ui-selected

+0

Voilà ce que je craignais, mais je Je me demandais de toute façon. Cette déclaration sur la page de démonstration (dans l'onglet Theming) m'a fait penser que c'était possible: "Le plugin jQuery UI Selectable utilise le framework CSS de l'interface utilisateur jQuery pour styler son apparence, y compris les couleurs et les textures d'arrière-plan. Outil ThemeRoller pour créer et télécharger des thèmes personnalisés faciles à créer et à gérer. " – Jeremy

+0

@Jeremy - J'ajouterais certainement une demande s'il n'y en a pas déjà une. Malheureusement je ne peux pas dire s'il y en a pour le moment parce que le système de tickets de l'interface jQuery est en panne, mais il devrait être corrigé bientôt: http://dev.jqueryui.com/report/10?P=selectable –

5

Vous pouvez définir dynamiquement les classes ui comme ceci:

$("#selectable ul").selectable({ 
    unselected: function(){ 
    $(".ui-state-highlight", this).each(function(){ 
     $(this).removeClass('ui-state-highlight'); 
    }); 
    }, 
    selected: function(){ 
    $(".ui-selected", this).each(function(){ 
     $(this).addClass('ui-state-highlight'); 
    }); 
    } 
}); 
$("#selectable li").hover(
    function() { 
    $(this).addClass('ui-state-hover'); 
    }, 
    function() { 
    $(this).removeClass('ui-state-hover'); 
    } 
); 
+0

Bonne réponse. J'ai dû faire quelques changements pour le faire fonctionner correctement: sur la ligne 1: changez $ ("# selectable ul") 'en $ (" # selectable ")' et à la ligne 3: changez $ (". -state-highlight ", this)' à '$ (": not (.ui-selected) ", ceci)'. – MCS

Questions connexes