JQuery警报问题?

时间:2010-02-18 22:11:04

标签: php jquery mysql

我正在尝试将以下代码仅显示在特定页面上,但是当我点击某些页面(如主页或任何其他不使用此代码的页面)时,我会收到以下警告(“发生了一些错误,请稍后再试“);。

如何让代码不在不使用此JQuery代码的页面上显示警告框,但代码仍然有效?

我正在使用JQuery,PHP&的MySQL。

这是JQuery代码。

$(document).ready(function() {

    // get average rating
    getRatingText();
    // get average rating function
    function getRatingText(){
        $.ajax({
            type: "GET",
            url: "../../../update.php",
            data: "do=getavgrate",
            cache: false,
            async: false,
            success: function(result) {
                // add rating text
                $("#rating-text").text(result);
            },
            error: function(result) {
                alert("some error occured, please try again later");
            }
        });
    }

    // get current rating
    getRating();
    // get rating function
    function getRating(){
        $.ajax({
            type: "GET",
            url: "../../../update.php",
            data: "do=getrate",
            cache: false,
            async: false,
            success: function(result) {
                // apply star rating to element dynamically
                $("#current-rating").css({ width: "" + result + "%" });
                 // add rating text dynamically
                $("#rating-text").text(getRatingText());
            },
            error: function(result) {
                alert("some error occured, please try again later");
            }
        });
    }


    // link handler
    $('#ratelinks li a').click(function(){
        $.ajax({
            type: "GET",
            url: "../../../update.php",
            data: "rating="+$(this).text()+"&do=rate",
            cache: false,
            async: false,
            success: function(result) {
                // remove #ratelinks element to prevent another rate
                $("#ratelinks").remove();
                // get rating after click
                getRating();
            },
            error: function(result) {
                alert("some error occured, please try again later");
            }
        });

    });
});

4 个答案:

答案 0 :(得分:1)

尝试这一点,使用if来检查id="rating-text"元素是否存在:

$(document).ready(function() {

    if($("#rating-text").length) {
      // get average rating
      getRatingText();
      // get current rating
      getRating();
    }
    // get average rating function
    function getRatingText(){
        $.ajax({
            type: "GET",
            url: "../../../update.php",
            data: "do=getavgrate",
            cache: false,
            async: false,
            success: function(result) {
                // add rating text
                $("#rating-text").text(result);
            },
            error: function(result) {
                alert("some error occured, please try again later");
            }
        });
    }

    function getRating(){
        $.ajax({
            type: "GET",
            url: "../../../update.php",
            data: "do=getrate",
            cache: false,
            async: false,
            success: function(result) {
                // apply star rating to element dynamically
                $("#current-rating").css({ width: "" + result + "%" });
                 // add rating text dynamically
                $("#rating-text").text(getRatingText());
            },
            error: function(result) {
                alert("some error occured, please try again later");
            }
        });
    }


    // link handler
    $('#ratelinks li a').click(function(){
        $.ajax({
            type: "GET",
            url: "../../../update.php",
            data: "rating="+$(this).text()+"&do=rate",
            cache: false,
            async: false,
            success: function(result) {
                // remove #ratelinks element to prevent another rate
                $("#ratelinks").remove();
                // get rating after click
                getRating();
            },
            error: function(result) {
                alert("some error occured, please try again later");
            }
        });

    });
});

答案 1 :(得分:0)

您正在为每个文档调用函数,因为它们不是由特定选择器触发的。为什么不简单地在$('#linklinks li a')之外删除对getRating()和getRatingText()的调用.Click()?

答案 2 :(得分:0)

  

如何才能显示代码   不使用的页面上的警告框   这个JQuery代码仍然有   代码工作?

他们确实使用它,这就是问题所在。一种选择是移动函数内的所有内容,只调用需要运行此代码的页面中的javascript函数。如果你有一个像header.inc这样的php,你需要将一些参数传递给你的头部并在你需要的时候调用它。

答案 3 :(得分:0)

Tbere是解决此问题的不同方法:

  1. 尝试将代码插入到js文件中,并在PHP的帮助下通过<script src='' />包含它。
  2. 对应包含此脚本的每个页面使用开关。
  3. 使用update.php的绝对网址而不是相对网址。
  4. 对于我的想象,你需要2号。几分钟后就会发布关于此的代码。