#jquery
#jquery
Вопрос:
Я могу получить только функции getRating();
и getRatingText();
для обновления без перезагрузки веб-страницы. Но другие функции getRatingText2();
и getRatingAvg();
не будут обновляться, пока я не перезагружу веб-страницу.
Как я могу обновить все функции без перезагрузки моей веб-страницы?
Вот скрипт jQuery.
$(document).ready(function() {
if($("#rating-text").length) {
getRatingText();
getRatingText2();
getRatingAvg();
getRating();
}
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 getRatingText2(){
$.ajax({
type: "GET",
url: "update.php",
data: "do=getavgrate2",
cache: false,
async: false,
success: function(result) {
$("#rating-text2").text(result);
},
error: function(result) {
alert("some error occured, please try again later");
}
});
}
function getRatingAvg(){
$.ajax({
type: "GET",
url: "update.php",
data: "do=getavgrate3",
cache: false,
async: false,
success: function(result) {
$("#grade-avg").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) {
$("#current-rating").css({ width: "" result "%" });
$("#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() "amp;do=rate",
cache: false,
async: false,
success: function(result) {
$("#ratelinks").remove();
getRating();
},
error: function(result) {
alert("some error occured, please try again later");
}
});
});
});
Ответ №1:
$ (document).функция ready вызывается только после завершения загрузки страницы и готовности dom. getRatingText2() и getRatingAvg() вызываются только в этой функции, поэтому они вызываются только при загрузке страницы.
Возможно, их следует вызывать в событии click вместе с другими вашими функциями или из getRating()? (getRating(); и getRatingText(); )
Комментарии:
1. Если вы хотите, чтобы getRatingText2() и getRatingAvg() обновлялись при нажатии на ссылку rate, просто поместите их в свой $(‘#ratelinks li a’).нажмите function .
Ответ №2:
Ваши элементы «click» генерируются динамически? Если они есть, используйте
$('#ratelinks li a').live('click', funcion())
Комментарии:
1. pnut, похоже, у вас могут быть проблемы не только с jQuery. Вы уверены, что CSS правильный? Вы пробовали применять функцию
live
orclick
только к определенному идентификатору ссылки?