Jquery ajax运行两次

时间:2014-02-06 07:49:12

标签: javascript jquery ajax

所以,我有这个问题。我正在使用一个名为jRating的插件,它实际上是jquery中的评级系统。我的问题是,onClick,ajax请求触发两次

经过大量搜索,我尝试了这些东西:

  1. 我检查并仔细检查了$(document).ready(function(){}和jQuery快捷方式$(function() {});在页面中不是两次。
  2. 我还检查了呼叫的ID是唯一的。
  3. 所以,这是我的代码:

    jQuery的:

    $("#rating").jRating({
                step:true,
                length : 5,
                canRateAgain : true,
                nbRates : 3,
                onClick : function(element,rate) {
    
                    var data = (rate, 1);
                    $.ajax({
                        url: 'application/index/rate',
                        type: 'POST',
                        dataType: 'x-www-form-urlencoded',
                        async:false,
                        contentType: 'application/x-www-form-urlencoded',
                        data: rate,
                        success: function () {
                            console.log('SUBMIT WORKS');
    
                        },
    
                        error: function () {
                            console.log('There is error while submit');
    
                        }
    
                    });  
    
                }
            });
    

    pHTML:

    <div id="rating" data-average="<?=$average //note that this is working everytime!?>" data-id="1"></div>
    

    感谢您的任何投入!

    编辑:JsFiddle:http://jsfiddle.net/Je79U/;

    要重新创建问题,请单击“运行”,然后转到控制台/网络,清除所有内容,然后单击黄色/橙色栏上的任意位置,进行评级,并查看会发生什么。感谢你的宝贵时间!

1 个答案:

答案 0 :(得分:1)

参考http://demos.myjqueryplugins.com/jrating/,已经jRating将作为ajax工作。所以,它需要ajax运行两次

请清楚查看他们的演示网站。

一旦你评价,它会将记录更新为http://demos.myjqueryplugins.com/jrating/php/jRating.php

并使用以下版本的jRating https://github.com/alpixel/jRating