我正在尝试将以下代码仅显示在特定页面上,但是当我点击某些页面(如主页或任何其他不使用此代码的页面)时,我会收到以下警告(“发生了一些错误,请稍后再试“);。
如何让代码不在不使用此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");
}
});
});
});
答案 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是解决此问题的不同方法:
<script src='' />
包含它。update.php
的绝对网址而不是相对网址。对于我的想象,你需要2号。几分钟后就会发布关于此的代码。