2009-10-03 9 views
0

Dans le code ci-dessous est la fonction qui convertit la classe de curseur en contrôle curseur. Il a une fonction qui est exécutée lorsque l'événement "slide" est déclenché.jquery sélectionner le problème

$(function(){ 
       $(".slider").slider({ 
        value: 0, 
        min: 0, 
        max: 5, 
        step: 1, 
        slide: function(event, ui) { 
         $(".slideinput > input.slidevalue").val(ui.value); 
        } 
       }); 
      }); 

Ce code ne fonctionne pas lorsque j'ai plusieurs curseurs sur une page. (ça change tout) Comment puis-je le réparer? Je ne sais pas comment définir un second élément pour sélectionner un élément avec un identifiant unique. (id est généré dynamiquement)

Un code HTML pour illustrer le positionnement des éléments.

<div class="item"> 
      <p class="head"> 
       A kako biste općenito ocijenili sljedeće aspekte ljetne turističke ponude u Hrvatskoj: Kvaliteta smještaja?</p> 

      <div class="slideinput" style="width: 220px; height: 20px; padding-top: 10px; padding-left: 8px;"> 
       <div style="width: 200px;" class="slider"> 
       </div> 
       <input class="slidevalue" id="q34" name="q34" type="hidden" value="0" /> 
      </div> 

     </div> 

     <div class="item"> 
      <p class="head"> 
       Broj plaža?</p> 

      <div class="slideinput" style="width: 220px; height: 20px; padding-top: 10px; padding-left: 8px;"> 
       <div style="width: 200px;" class="slider"> 
       </div> 
       <input class="slidevalue" id="q35" name="q35" type="hidden" value="0" /> 
      </div> 

     </div> 

     <div class="item"> 
      <p class="head"> 
       Urednost plaža?</p> 

      <div class="slideinput" style="width: 220px; height: 20px; padding-top: 10px; padding-left: 8px;"> 
       <div style="width: 200px;" class="slider"> 
       </div> 
       <input class="slidevalue" id="q36" name="q36" type="hidden" value="0" /> 
      </div> 

     </div> 

     <div class="item"> 
      <p class="head"> 
       Kvaliteta restorana i kafića?</p> 

      <div class="slideinput" style="width: 220px; height: 20px; padding-top: 10px; padding-left: 8px;"> 
       <div style="width: 200px;" class="slider"> 
       </div> 
       <input class="slidevalue" id="q37" name="q37" type="hidden" value="0" /> 
      </div> 

     </div> 

Toute solution?

+0

Souhaitez-vous poster un message HTML? –

Répondre

3

Je ne suis pas sûr de l'événement "slide" - mais la plupart des événements jQuery auront this comme élément cible.

Avez-vous essayé de faire un console.log(this); (en supposant firebug) pour voir ce que vous avez?

Vous pourriez être en mesure de le faire:

Mise à jour avec un commentaire:

Il semble que votre élément d'entrée est un enfant du parent « curseurs », et non le curseur, changé le bloc de code pour refléter le vôtre.

slide: function(event, ui) { 
    $(this).parent().find("input.slidevalue").val(ui.value); 
} 
+0

Oups, correction ... J'ai testé cela et cela fonctionne si vous faites cela ... $ (this) .parent(). Find ('input.slidevalue'). Val (ui.value); Je vous ai quand même donné un vote positif: P – Mottie

+0

J'ai supprimé ma propre réponse, car elle serait en double. – Tarik

+0

ouais, ça marche. tnx – Ante

Questions connexes