Использование рейтингов JQuery и отправка данных в аналитику - PullRequest
2 голосов
/ 16 ноября 2011

У меня возникли проблемы с реализацией плагина JQuery со звездной оценкой.Рассматриваемый плагин можно найти по адресу http://orkans -tmp.22web.net / star_rating /

Проблема в том, что я передаю счет в аналитику Google.Мне удалось реализовать плагин, но по какой-то причине код не будет запускать пользовательское событие аналитики.Правильное текущее значение выводится при нажатии звездочек, и это значение я хочу передать отслеживанию событий Google Analytics.

Любая помощь будет высоко ценится, мой код выглядит следующим образом:

<link rel="stylesheet" type="text/css" media="screen" href="css/styles.css"/>   
<script type="text/javascript" src="js/jquery.min.js></script>
<script type="text/javascript" src="js/jquery-ui.custom.min.js"></script>
<script type="text/javascript" src="js/jquery.ui.stars.js"></script>
<link rel="stylesheet" type="text/css" href="css/jquery.ui.stars.css"/>


<script type="text/javascript">
    var url = location.href;

    $(function ratingStars(){
        $("#ratings").stars({
            captionEl: $("#stars-cap"),
            oneVoteOnly: false,
        });
    });

    $(document).ready(function(){
        $('.ui-stars-star').click(function() {
            // Retrieve instance
            var ui = $("#ratings").data("stars");
            var currValue = ui.options.value;
            //alert the currValue to make sure it is in place.
            alert(currValue);
           //send data to track
          _gaq.push(['_trackEvent', 'UATRatingTest', 'UATRatingTest2', url, currValue]);
        });
    });
</script>

<div class="RatingStars">
    <form id="ratings">
        <input type="radio"  name="rate" value="1" title="Poor" id="rate1" />
        <input type="radio"  name="rate" value="2" title="Fair" id="rate2" /> 
        <input type="radio"  name="rate" value="3" title="Average" id="rate3" /> 
        <input type="radio"  name="rate" value="4" title="Good" id="rate4" /> 
        <input type="radio"  name="rate" value="5" title="Excellent" id="rate5" />
    </form>
<span style="margin-right:5px; margin-left:10px;"> Rating: </span> <span id="stars-cap"></span> <br/>

Плагин создает

<div class="ui-stars-star"> 

для каждой звезды, поэтому я добавил функцию щелчка, чтобы попытаться передать заданный счет.

Если у кого-то есть опыт работы с плагином, это было бы здорово.

Спасибо,

Саймон

Ответы [ 2 ]

1 голос
/ 17 ноября 2011

Я нашел ответ на мою проблему.Похоже, что currValue был проанализирован как строка, а не целое число, которое требуется аналитике для запуска сценария.Я решил это, преобразовав значение в целое число, используя следующий код:

var myString = currValue;
var myConvertedInteger;
myConvertedInteger = parseInt(myString);
//Check string has been converted 
alert(myConvertedInteger);
_gaq.push(['_trackEvent', 'UATRatingTest', 'UATRatingTest2', url, myConvertedInteger]);

Спасибо за ваш вклад Рори.

0 голосов
/ 16 ноября 2011

Если элементы с классом .ui-stars-star создаются динамически, попробуйте метод live(), чтобы подключить их события:

$('.ui-stars-star').live("click", function() { ...

Или, если вы используете jQuery 1.7, вы можете использовать on()

$('.ui-stars-star').on("click", function() { ...
...