我想实现以下功能。
我有两个Jquery .js文件都导入到一个HTML文件中并使用ajax功能。 First.js有一个jj函数,它将获得json响应。如果服务返回成功,我必须调用Second.js中存在的另一个ajax调用
的test.html
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
<script type="text/javascript" src='js/jquery.js'></script>
<script type="text/javascript" src="js/test.js"></script>
<script type="text/javascript" src="js/test1.js"></script>
</head>
<body>
<div class="ui-body">
<fieldset class="ui-grid-a">
<div id="buttondiv" class="ui-block-a"><a data-role="button" id="loginbtn" data-theme="b">Login</a></div>
<div id="loading" style="display:none"><img src='css/images/demo_wait.gif' /></div>
</fieldset>
</div>
</body>
</html>
首先.js
$(document).ready(function(){
$.ajax({
.
.
.
success:function(data){
Successcall();
},
error:function(xhr){
alert("Error");
}
});
});
Second.js
$(document).ready(function(){
function Successcall(){
$.ajax({
.
.
.
success:function(data){
alert("In Second JS");
},
error:function(xhr){
alert("Error");
}
});
}
});
我无法调用Successcall();函数来自Second.js
有些人可以帮我解决这个问题。
答案 0 :(得分:0)
在Second.js
中,删除$(document).ready
包装。 Successcall()
函数必须在document ready
之外才能访问
function Successcall(){
$.ajax({
.
.
.
success:function(data){
alert("In Second JS");
},
error:function(xhr){
alert("Error");
}
});
}
在first.js之前先加载second.js
答案 1 :(得分:0)
Second.js中的Successcall函数超出了First.js的范围,因为它包含在$(document).ready()函数范围内。
Muthu Kumaran的解决方案会将Successcall函数附加到全局对象,这将起作用,但是相当混乱恕我直言。
也许这会更好(把它放在Second.js中)
var my_functions = {};
my_functions.Successcall = function() {
// do something
};
然后从First.js调用my_functions.Successcall()。这样就可以避免将函数附加到全局对象。
答案 2 :(得分:0)
首先检查你的ajax呼叫成功方法。
把警报功能像
success:function(data){
**alert("Got success");**
Successcall();
}
如果上面的代码工作正常但仍未调用 Successcall(); 函数
那么你可以把 Successcall(); 放在就绪函数