我有以下(简化的)java脚本,html和包含的java脚本(js)文件。我的问题是我得到一个错误,该方法在syncData函数调用中不存在。我得到的事实是我可以调用同步函数,因为它在window的范围内。主要但为什么我不能调用syncData这包含在.js脚本文件中,我该怎么称呼它?
$(window).load(function () {
Main.init();
});
window.Main = {
sync: function () {
alert("sync");
},
init: function () {
var self = this;
self.displayDialog();
},
displayDialog: function () {
$("#dialog-confirm").dialog({
resizable: false,
height: 240,
width: 500,
modal: true,
buttons: {
"Sync Data": function () {
$(this).dialog("close");
Main.sync();
syncData();
},
Cancel: function () {
$(this).dialog("close");
alert("Cancel");
}
}
});
};
HTML:
<!DOCTYPE html>
<head>
<title>Pay Items Amounts</title>
<script src="Scripts/jquery-1.9.1.js" type="text/javascript"></script>
<script src="Scripts/jquery-ui-1.10.2.js" type="text/javascript"></script>
<!--<script src="Scripts/jquery.unobtrusive-ajax.js" type="text/javascript"></script>-->
<script src="Scripts/jquery.validate.js" type="text/javascript"></script>
<script src="Scripts/knockout-2.1.0.js" type="text/javascript"></script>
<script src="Scripts/modernizr-2.5.3.js" type="text/javascript"></script>
<script src="Scripts/PayItemAmounts.js" type="text/javascript"></script>
<script src="Scripts/spin.js" type="text/javascript"></script>
<script src="Scripts/syncData.js" type="text/javascript"></script>
<link href="Content/jquery-ui.css" rel="stylesheet" type="text/css" />
</head>
<body>
<header>
</header>
<nav>
</nav>
<section class="dialog-confirmation">
<div id="dialog-confirm" title="Sync Data?" style="display:none">
<p><span class="ui-icon ui-icon-alert" style="float: left; margin: 0 7px 20px 0;"></span>
<label id="dialog-message"></label> </p>
</div>
</section>
</body>
</html>
JAVASCRIPT syncData.js FILE:
syncData: function () {
alert("sync");
}
答案 0 :(得分:0)
您的语法不正确。
function syncData() {
// whatever
}
我认为你应该得到的是语法错误。标签(“syncData:”)没问题,但没用。函数声明缺少一个名称,因此(我认为)会产生错误。
答案 1 :(得分:0)
您无法调用syncData()
,因为您尚未定义名为syncData
的函数。
这(因为它不在对象文字定义中):
syncData: function () {
alert("sync");
}
...是语法错误。
你应该:
function syncData () {
alert("sync");
}
或者,如果你真的想要一个函数表达式:
var syncData = function () {
alert("sync");
}