Проблема с обновлением jQuery?

#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 or click только к определенному идентификатору ссылки?