我有一个ajax调用,它从连接到api的php文件中获取数据。我有一个成功处理程序,它接收来自ajax调用的数据,然后从API库加载一个函数。问题是,我希望用户单击一个按钮,然后在成功调用中运行该函数(使用之前ajax调用中的相同数据)。
我相信我的ajax调用需要保留在window.onload = function()中,如果我在用户点击按钮时尝试运行ajax调用,它就不起作用。
<html>
<head>
<title>hi</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="http://api.screenleap.com/js/screenleap.js"></script>
<script>
function hello(){
alert("hi");
}
function successHandler(data){
screenleap.startSharing('DEFAULT', data, {
nativeDownloadStarting: hello
});
}
window.onload = function() {
$.ajax({
type: "POST",
url: "key.php",
data: '',
success: successHandler,
dataType: "json"
});
};
</script>
</head>
<body>
<input type="submit" value="submit" id="submit">
</body>
</html>
请让我知道如何做到这一点,我们将非常感谢任何帮助。
更新 所以我尝试调整我的代码,但由于某种原因,当我点击按钮时,没有任何事情发生。它甚至没有射出我的console.log确认我甚至点击了按钮。
<html>
<head>
<title>hi</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="http://api.screenleap.com/js/screenleap.js"></script>
<script>
var dataFromServer;
function hello(){
alert("hi");
}
function successHandler(data){
dataFromServer = data;
console.log("data from server: ")
console.log(dataFromServer);
}
window.onload = function() {
$.ajax({
type: "POST",
url: "key.php",
data: '',
success: successHandler,
dataType: "json"
});
};
$("#submit").click(function(){
console.log('clicked submit');
if(dataFromServer)
{
console.log(datafromserver);
screenleap.startSharing('DEFAULT', dataFromServer, {
nativeDownloadStarting: hello
});
}
});
</script>
</head>
<body>
<input type="submit" value="submit" id="submit">
</body>
</html>
一切顺利,
- 24x7
答案 0 :(得分:-1)
您可以将数据存储到某个全局变量,并在按钮单击时使用相同的变量。
var dataFromServer;
function successHandler(data){
dataFromServer = data;
}
jQuery("#submit").click(function(){
if(dataFromServer)
{
screenleap.startSharing('DEFAULT', dataFromServer, {
nativeDownloadStarting: hello
});
}
});
更新
而不是window.onload使用jquery onload函数来填充数据。
$(function() {
$.ajax({
type: "GET",
url: "https://api.github.com/users/mralexgray",
data: '',
success: successHandler,
dataType: "json"
});
});