簡體   English   中英

jQuery在Mozilla Firefox上不起作用

[英]jQuery is not functional on Mozilla Firefox

使用Mozilla Firefox時,我的ASP.NET MVC應用程序出現問題。 我正在使用JQuery,但此代碼無法正常工作。 在Google Chrome和IE 8中,一切都很好。 如何解決這個問題。 如有必要,我將發布我的JQuerycode的一部分

在“網站”母版頁中,我包含腳本,如下所示:

 <script type="text/javascript" src="../../Scripts/jquery-1.3.2.js"></script>
 <script src="../../Scripts/jquery-1.3.2.js" type="text/javascript"></script>
 <script type="text/javascript" src="../../Scripts/ui.core.js"></script> 
 <script type="text/javascript" src="../../Scripts/ui.selectable.js"></script> 
 <script type="text/javascript" src="../../Scripts/ui/ui.accordion.js"></script>

<script type="text/javascript" src="../../Scripts/MicrosoftAjax.debug.js"></script>
<script type="text/javascript" src="../../Scripts/MicrosoftMvcAjax.debug.js"></script>


 <script type="text/javascript" src="../../Scripts/jquery.dataTables.js"></script>
 <script type="text/javascript" src="../../Scripts/ui/ui.datepicker.js"></script> 
 <script type="text/javascript" src="../../Scripts/jquery.bstablecrosshair.js"></script>



<script src="../../Scripts/jquery.jqGrid.min.js" type="text/javascript"></script>
<script src="../../Scripts/jqModal.js" type="text/javascript"></script>
<script src="../../Scripts/jqDnR.js" type="text/javascript"></script>

在Firefox上不起作用的代碼最重要的部分:

     <script type="text/javascript">
     $(document).ready(function() {

    $('input:radio').click(function() {

        var num = "";
        var location = "";
        var loc = $("input:checked").val();
        var lenght = loc.lenght;
        var tmp = loc.substring(0, 2);

        if (tmp == "SA") {
            num = loc.substring(2, lenght);
            location = "SA";
        }
        if (tmp == "ST") {
            num = loc.substring(2, lenght);
            location = "STH";
        }
        if (tmp == "SH") {
            num = loc.substring(2, lenght);
            location = "SASTH";
        }
        if (tmp == "NE") {
            num = loc.substring(2, lenght);
            location = "NEW";
        }

        var article_number = $("input[id=" + num + "]").val();

        //alert(article_number +"  "+ num);

        $.post("/ImportXML/DevAccEditTempTable", { location: location, article_number: article_number, loc: num }, function(data) {
            if (data.error == "Error") {
                alert("Error: quantity is too large! ");
                window.location.href = "/" + data.redirect;

            }

            else {
                window.location.href = "/" + data.redirect;
            }
        }, "json");
    });
});
</script>

對於基本的Javascript / jQuery調試,請嘗試以下操作:

<script type="text/javascript">
        alert("Javascript works!");

        $(document).ready(function(){
            alert("jQuery works!");
        });
</script>

如果僅獲得第一個警報窗口,則意味着jQuery的引用方式有問題。 如果您沒有在Firefox中找到任何一個窗口(但在其他瀏覽器中都看到了),則需要確保在“選項”>“內容”中打開了Javascript,並且要確保沒有插件被阻止的JavaScript。

(已編輯,因為在原始帖子中添加了更多代碼段:)

在您發布的第二個代碼段中,“ loc.lenght”應為“ loc.length”。

$('input:radio').click(function() {

    var num = "";
    var location = "";
    var loc = $("input:checked").val();
    var lenght = loc.lenght;
    var tmp = loc.substring(0, 2);
    alert(loc.substring(2, lenght));

看起來這行var lenght = loc.lenght; 之所以引起問題,是因為loc.lenght可能未返回您想要的值(因為lenght不是屬性)。 我已向您的代碼添加了alert ,該alert應彈出您在本節后面的if語句中計算的字符串。 您應該運行此代碼,並在所有三個瀏覽器中使用alert ,以查看有何區別。

我不確定為什么這在某些瀏覽器中會起作用,但在Firefox中卻不能。 也許loc.lenght在IE 8和Chrome中返回0,但在Firefox中返回null ,這將破壞整個計算。

檢查是否在Firefox中禁用了Javascript。 另外,檢查FF插件,例如adblocker,它們可能阻止了某些Google URL,如果讓Google托管JQuery庫,則可能會出現問題。

機會是你的問題是你拼寫錯誤的單詞Lenght

var lenght = loc.lenght; <-應該是loc.length

jQuery在firefox上對我來說效果很好,也許如果您發布的內容給您帶來了麻煩,那么這里的社區可以為您指明正確的方向。

安裝提琴手,瀏覽器的行為有所不同,有些嚴格,有些寬松,您應該了解Chrome會在您不知情的情況下解決代碼中的問題,而firfox可能不會。

檢查Chrome調試器Ctrl-Shift-J並安裝提琴手。

如果發布的腳本是您正在使用的腳本,則看起來您實際上並未包含jQuery。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM