2

オブジェクトとJquery1.7.2を使用してクラスを作成しました。「$.ajax()」や「$ .getJSON()」などのAJAX関連の呼び出しを除いて、すべてのJqueryは正常に機能します。

スコープを気にしないので、私は通常、オブジェクトや関数を介してクラスを作成しません。スコープの問題だと思いますが、他のJqueryコードのかなりの部分が問題なく使用されているため、修正方法がわかりません。したがって、問題はAjaxがJQueryでセットアップされていることに焦点を当てているようです。

以下は、Javascriptコードの一部です。大量になるため、すべてではありません。また、binding()、click()、.each()など、残りのコードですべてのJqueryが使用します。

HTMLだけでなく、Ajax呼び出し以外のすべてが機能するJavaScriptもあります。HTML、CSS、およびJavascriptが検証されました。だから私はそれがスコープの問題だと考え続けています。

HTML

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="_res/css/main.css" />
        <script src="_res/js/libs/jquery-1.7.2.min.js"></script>
        <script src="_res/js/libs/main.js"></script>
    </head>
    <body></body>
</html>

Javascriptスニペットコード(main.js)

var BettingApp = {
    loadData:function()
    {
        //console.log("loadData()");

        //BettingApp.resetData();

        // This fails before it even tries to get the data.
        $.ajax(
        {
            url: "/_res/json/sampleData.json", 
            cache: false,
            contentType:"json",
            processData: false,
            complete: BettingApp.parseData,
            success: BettingApp.parseData
        });
    },

    resetData:function()
    {
        console.log("resetData()");
        // This works just fine
        $("#agencyBetView ul li").remove();
        $("#playerBetView ul li").remove();
    },

    activateData:function()
    {
        console.log("activateData()");
    }
};

$(document).ready(function(){ BettingApp.loadData(); });

ブラウザからのエラー(最新のChrome、Safari、Firefox)

Uncaught TypeError: Property 'String' of object [object Window] is not a function

jquery-1.7.2.min.js:2
e.extend.type jquery-1.7.2.min.js:2
f.Callbacks.n jquery-1.7.2.min.js:2
f.Callbacks.p.add jquery-1.7.2.min.js:2
f.extend.ajax jquery-1.7.2.min.js:4
BettingApp.loadData main.js:175
BettingApp.updateStep main.js:102
BettingApp.chooseBetType_agency main.js:369
f.event.dispatch jquery-1.7.2.min.js:3
f.event.add.h.handle.i

フルコードで動作するJquery関数

.bind()
.click()
.data()
.each()
.focus()
.focusout()
.html()
.ready()
.remove()
.slideUp()
.slideDown()
4

2 に答える 2

1

エラーから、Property 'String' of object [object Window] is not a functionそれはあなたがwindow.Stringを上書きすることを意味します、以下に示すようにString、実際には、によって"fast"、そして最後にによって上書きされています""

animSpeed:String            = "fast",
voucherID_step:Number       = 1,
voucherID_target:String     = "#voucherIDView",
noCredits_step:Number       = 2,
noCredits_target:String     = "#noCreditsView",
chooseBetType_step:Number   = 3,
chooseBetType_target:String = "#chooseBetTypeView",
agencyBet_step:Number       = 4.1,
agencyBet_target:String     = "#agencyBetView",
playerBet_step:Number       = 4.2,
playerBet_target:String     = "#playerBetView",
confirmation_step:Number    = 5,
confirmation_target:String  = "#confirmationView",

// Steps
step:Number                 = 0,

// VoucherID
voucherIDDefaultText:String = "",

javascriptで変数タイプを指定する必要はありません(実際にはできません)、これがあなたの意図したことだと思います

animSpeed:           "fast",
voucherID_step:          1,
voucherID_target:        "#voucherIDView",
noCredits_step:          2,
noCredits_target:        "#noCreditsView",
chooseBetType_step:      3,
chooseBetType_target:    "#chooseBetTypeView",
agencyBet_step:          4.1,
agencyBet_target:        "#agencyBetView",
playerBet_step:          4.2,
playerBet_target:        "#playerBetView",
confirmation_step:   5,
confirmation_target:     "#confirmationView",

// Steps
step:                0,

// VoucherID
voucherIDDefaultText:    "",
于 2012-08-08T20:24:30.890 に答える
0

あるべきではないnew

new $.ajax(

それはただあるべきです

$.ajax(
于 2012-08-08T19:34:28.537 に答える