2010-04-20 4 views
1

J'utilise le contrôle d'évaluation des étoiles jQuery trouvé au http://www.fyneworks.com/jquery/star-rating/#tab-Overview. J'utilise 5 étoiles, chaque étoile ayant une valeur particulière de 1 à 5. Le contrôle est affiché et se comporte correctement. Cependant, j'ai l'obligation de cliquer sur la valeur de l'étoile, immédiatement après avoir cliqué sur une étoile. Je ne sais pas comment le faire.comment accrocher un rappel à un événement click de contrôle d'étoiles

J'apprécie votre aide.

Répondre

1

Après avoir analysé la structure du balisage généré par le système de notation, j'ai ajouté le code suivant dans la fonction de document prêt.

$('div.star').live('click', function() { 
     var value = $('a', this).html().trim(); 


     var ratingName = $(this).parent().next('input[type="radio"]').attr('name'); 

     alert('rating for ' + ratingName ' is ' + value); 
    }); 

Cela fonctionne très bien, mais est très indirect. Je ne connais pas plus de solution directe.

0

Les étoiles utilisent essentiellement les boutons radio dans les coulisses et ont la classe star, essayez ceci:

$(function(){ 
    $('.star').live('click', function(){ 
    alert($(this).val()); 
    }); 
}); 
+0

Cela ne m'a pas aidé. En fait, l'événement lui-même n'a pas tiré. – mohang

+0

@mohang: J'ai modifié ma réponse, veuillez la vérifier. – Sarfraz

0

Dans un projet, nous utilisions ce même plugin et nous devions en sortir car il était très lent lorsqu'il avait beaucoup d'étoiles dans la même page (il génère beaucoup d'éléments dom pour chaque élément d'entrée). Nous avons fini par mettre en œuvre le css seulement technique seen here, c'est beaucoup plus rapide (mais il perd évidemment certaines options comme la note "étoile partielle")

+0

Oui, j'ai aussi vécu la même chose dans notre projet. Nous l'utilisons seulement dans les endroits où la sélection est requise. À des fins d'affichage, nous utilisons une technique CSS simple en utilisant des boîtes. – mohang

Questions connexes