Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Star rating jquery

  1. #1

    Star rating jquery

    Ciao sto provando a realizzare uno script per permettere all'utente di votare con il sistema delle stelle...ho preso uno script da un sito e ho capito tutto il procedimento da seguire,ma non riesco a capire per quale motivo non funzioni:

    Codice PHP:
    <html>
    <
    head>
    <
    title>Star Rating</title>
    <
    link rel="stylesheet" type="text/css" href="home.css"/>
    <
    script type="text/javascript">
    $(
    '.ratings_stars').hover(  
        
    // Handles the mouseover  
        
    function() {  
            $(
    this).prevAll().andSelf().addClass('ratings_over');  
            $(
    this).nextAll().removeClass('ratings_vote');  
        },  
        
    // Handles the mouseout  
        
    function() {  
            $(
    this).prevAll().andSelf().removeClass('ratings_over');  
            
    set_votes($(this).parent());  
        }  
    );

    $(
    '.rate_widget').each(function(i) {  
        var 
    widget this;  
        var 
    out_data = {  
            
    widget_id : $(widget).attr('id'),  
            
    fetch1  
        
    };  
        $.
    post(  
            
    'ratings.php',  
            
    out_data,  
            function(
    INFO) {  
                $(
    widget).data'fsr'INFO );  
                
    set_votes(widget);  
            },  
            
    'json'  
        
    );  
    });  

    {  
        
    "widget_id"     "r1",  
        
    "number_votes"  129,  
        
    "total_points"  344,  
        
    "dec_avg"       2.7,  
        
    "whole_avg"     3  
    }  

    $(
    '#one_of_your_widgets).data('fsr').widget_id;  

    function set_votes(widget) {  
        var avg = $(widget).data('
    fsr').whole_avg;  
        var votes = $(widget).data('
    fsr').number_votes;  
        var exact = $(widget).data('
    fsr').dec_avg;  
        $(widget).find('
    .star_' + avg).prevAll().andSelf().addClass('ratings_vote');  
        $(widget).find('
    .star_' + avg).nextAll().removeClass('ratings_vote');  
        $(widget).find('
    .total_votes').text( votes + ' votes recorded (' + exact + ' rating)' );  
    }  

    $('
    .ratings_stars').bind('click', function() {  
        var star = this;  
        var widget = $(this).parent();  
        var clicked_data = {  
            clicked_on : $(star).attr('
    class'),  
            widget_id : widget.attr('
    id')  
        };  
        $.post(  
            '
    php.php',  
            clicked_data,  
            function(INFO) {  
                widget.data( '
    fsr', INFO );  
                set_votes(widget);  
            },  
            '
    json'  
        );  
    });
    </script>
    </head>

    <body>
    <div class='
    movie_choice'>
        <div id="r1" class="rate_widget">
         <div class="star_1 ratings_stars"></div>
         <div class="star_2 ratings_stars"></div>
         <div class="star_3 ratings_stars"></div>
         <div class="star_4 ratings_stars"></div>
         <div class="star_5 ratings_stars"></div>
         <div class="total_votes">vote data</div>
        </div>
    </div>
    </body></html> 
    Praticamente si vedono le 5 stelle,ma al passaggio del mouse su di loro non accade nulla

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    A) Manca la libreria jquery (come prima inclusione)
    B) gli eventi bind o hover potrebbero non essere più supportati (documenti qui)
    C) Gli eventi associati ad un elemento devono essere racchiusi nella onload
    $(function(){
    ... codice.....
    })
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Grazie per la risposta...ho aggiunto prima del mio script questo, per aggiungere la libreria:

    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script src="http://code.jquery.com/jquery-migrate-1.1.1.min.js"></script>

    bind() e hover() sono presenti nel link che mi hai indicato,quindi dovrebbero essere ancora supportati...

    Forse questa parte non è scritta correttamente?
    Codice PHP:
    $('.ratings_stars').hover(
        
    // Handles the mouseover  
        
    function() {  
            $(
    this).prevAll().andSelf().addClass('ratings_over');  
            $(
    this).nextAll().removeClass('ratings_vote');  
        },  
        
    // Handles the mouseout  
        
    function() {  
            $(
    this).prevAll().andSelf().removeClass('ratings_over');  
            
    set_votes($(this).parent());  
        }  
    ); 
    Scusa ma con il jQuery me la cavo poco

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    bind() e hover() sono presenti nel link che mi hai indicato,quindi dovrebbero essere ancora supportati...
    non è detto.
    Jquery non è difficilissimo ma un minimo bisogna studiarlo, il copia/incolla va bene fino ad un certo punto (gli script preconfezionati che non vanno modificati)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.