Salut tout le monde, j' ai depuis quelques jours un probléme qui me hante:
En fait je désirerais à l' aide de JQuery mettre un élément spécifique d'une liste en surbrillance.
La liste représente la totalité des entrées d' une des tables de mon application?
Une option est chargée de modifier une de ces entrées,aprés selection de cette derniére dans la liste.
Il suffit donc de sélectionner l'élément à modifier, il s'inscriera alors dans un élément de type "text" d'un formulaire portant l'id "famille_nom".
Il faut ensuite le modifier et valider. La liste est alors rechargée avec l'élément modifié y figurant(parmis tous les élèments).
Je désirerais que cet élèment soit en surbrillance grace au css en lui assignant la class nommée "selected" qui dans mon css attibut une surbrillance à tous les élements de cette class.
Voici mon code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
// 3a.Bouton de modification de Familles
$("#btn_modifierFamille").click
(
function ()
{
famille_nom = $("#famille_nom").val();//assignation de la valeur de #famille_nom à famille_nom
$.post //envoie des informations au contrôleur "famille" avec l' action "modifier"
(
"<?=$this->baseUrl()?>/famille/modifier",{famille_nom: famille_nom, hidden_famille_id:id_fam},
function (data)
{
alert(data);//informaion sur le succés ou l' echec de la modification.
load_vue1();//Chargement de la vue1 contenant la nouvelle liste.
setTimeout('$("#div_famille").find("li[title=+famille_nom+]).addClass("selected");',600);//recherhce de l' élément de
//la liste se trouvant dans #div_famille et ayant comme titre la valeur de la variable "famille_nom" afin de lui assigner la class "selected"(pour surbrillance).
}
);
}
); |
Comme il l' est spécifié dans les commentaires:
Aprés click sur le bouton "btn_modifierFamille"
La liste se recharge avec les informations modifiées.
Le probléme est donc pour l' assignation de la class "selected" ou plutot au niveau de la recherche du bon élément au niveau de cette ligne:
setTimeout('$("#div_famille").find("li[title=+famille_nom+]).addClass("selected");',600);
J' ai essayé de changer +famille_nom+ par le vrai titre d'une des familles et cela fonctionne.
Code avec le vrai titre de la famille à mettre en surbrillance:
setTimeout('$("#div_famille").find("li[title=Fruits et Légumes]").addClass("selected");',600);
Jai bien sur vérifié que la variable contenait bien la valeur d'un vrai nom de famille avec un alert :
alert(famille_nom);
Et c' est le cas.
J' ai essayé énormément de syntaxes différentes au niveau de la variable famille_nom
ex
$famille_nom(en ayant déclaré "$famille_nom = $("#famille_nom").val(); "au préalable)
"var famille_nom"(en ayant déclaré "var famille_nom=$("#famille_nom").val();" au préalable).
J' ai aussi essayé:
setTimeout('$("#div_famille").find("li[title=<?=$famille_nom?>").addClass("selected");',600);
Mais cela ne marche pas non plus.
Voila aprés de nombreuse recherche accompagné de mon plus fidéle amis se nommant "google" je me raproche de votre forum afin de voir si vous auriez la solution .
J'espére avoir été assez clair dans mes explications et vous remercie d' avance .
Ps:
setTimeout('instruction',tempsavant execution de l' instruction);
sert à attendre avant d' executer l' instruction afin que la fonction "load_vue1();" ait bien fini de chargér.
Cordialement Slivzzz
Partager