我使用对象创建了一个类,并使用了Jquery 1.7.2。我的Jquery一切正常,除了AJAX相关的调用,如“$ .ajax()”和“$ .getJSON()”。
我通常不会通过对象或函数创建类,因为不用担心范围。我认为这是一个范围问题,但我不确定如何解决它,因为我有一大堆其他Jquery代码正在使用顺利。所以这个问题似乎集中在Ajax上,在JQuery中设置。
以下是一些Javascript代码。不是全部,因为它将是一个巨大的数量,并且所有Jquery在其余代码中使用,例如binding(),click(),.each()。
除了Ajax调用之外,还有更多的HTML以及一切正常运行的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()
答案 0 :(得分:1)
错误Property 'String' of object [object Window] is not a function
表示你覆盖window.String,如下所示String
实际上被"fast"
覆盖,最后由""
<覆盖/ p>
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: "",
答案 1 :(得分:0)
应该没有new
new $.ajax(
应该只是
$.ajax(