jQuery 1.4.2 Ошибка IE8 на ожидаемой странице ')' - PullRequest
1 голос
/ 01 сентября 2010

У меня проблема с IE8 (там ничего нового). Ошибка, которую я получаю, не имеет особого смысла, поскольку она не возникает в FF или Chrome. Вот код:

function remComp(id, trade) {
            $.ajax({
                url: "functions/removePriceSurveyComparison.php",
                type: "POST",
                async: true,
                data: "id="+id,
                dataType: "xml",
                success: function(xmlData) {
                    if ($("success", xmlData).text() == "true") {
                        loadComps(trade);
                    }// TODO create error handler
                }
            });
        }

В этой функции она жалуется на строку, в которой определен обратный вызов успеха. Эта функция еще даже не была вызвана? Но когда он вызывается, он прекрасно работает, хотя все еще создает новые ошибки?

Функция, которая вызывается, хотя:

        function loadComps(trade) {
            $.ajax({
                url: "functions/loadPriceSurveyComparisons.php",
                type: "POST",
                async: true,
                data: "trade="+trade,
                cache: false,
                dataType: "html",
                success: function(comps) {
                    $("#current"+trade).html(comps);
                }
            });
        }

Вторая функция обычно вызывается 3 раза при загрузке страницы. Любой совет?

Вот полный блок скрипта:

        function remComp(id, trade) {
            $.ajax({
                url: "functions/removePriceSurveyComparison.php",
                type: "POST",
                async: true,
                data: "id="+id,
                dataType: "xml",
                success: function(xmlData) {
                    if ($("success", xmlData).text() == "true") {
                        loadComps(trade);
                    }// TODO create error handler
                }
            });
        }

        function addComp(trade, albId, compId) {
            $.ajax({
                url: "functions/addPriceSurveyComparison.php",
                type: "POST",
                async: true,
                data: "trade="+trade+"&albId="+albId+"&compId="+compId,
                cache: false,
                dataType: "xml",
                success: function(xmlData) {
                    if ($("success", xmlData).text() == "true") {
                        loadComps(trade);
                    }// TODO add an error handler
                }
            });
        }

        function updateComp(id, trade) {
            var albId = $("select#albProd"+id).val();
            var compId = $("select#compProd"+id).val();

            $.ajax({
                url: "functions/updatePriceSurveyComparison.php",
                type: "POST",
                async: true,
                data: "id="+id+"&albId="+albId+"&compId="+compId,
                cache: false,
                dataType: "xml",
                success: function(xmlData) {
                    if ($("success", xmlData).text() == "true") {
                        // reload table for this trade
                        loadComps(trade);
                    }// TODO create error handler
                }
            });
        }

        // function that loads all of the comparisons for a specific trade
        function loadComps(trade) {
            $.ajax({
                url: "functions/loadPriceSurveyComparisons.php",
                type: "POST",
                async: true,
                data: "trade="+trade,
                cache: false,
                dataType: "html",
                success: function(comps) {
                    $("#current"+trade).html(comps);
                }
            });
        }

        // define document.ready function
        $(document).ready(function() {
            // load all of the comparisons for each trade
            <?php
            foreach ($trades as $trade) {
                echo "loadComps(\"$trade\");\n";
                ?>
                $("#addComp<?php echo $trade; ?>").click(function(e) {
                    e.preventDefault();
                    addComp("<?php echo $trade; ?>", $("#albProd<?php echo $trade; ?>").val(), $("#compProd<?php echo $trade; ?>").val());
                });
                <?php
            }
            ?>
        });

1 Ответ

1 голос
/ 26 января 2011

Сообщение об ошибке JSLint «Implied Global» означает, что есть определенные переменные, в которых отсутствует определение «var» ... это особенно проблематично для IE8.Вам нужно пройти и добавить «var» к перечисленным номерам строк (да, есть много).

Вы используете упаковщик активов?Порядок перечисления активов в вашем упаковщике активов может быть ошибочным здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...