我试图将一些数据从一个函数传递到另一个函数。我已经成功完成了AJAX调用并获得了数据。但我现在无法弄清楚如何将这些数据传递给另一个函数。
'use strict'
$(document).ready(function() {
console.log('Page Ready');
changeColor();
getData();
});
function getData(data) {
var root = 'http://jsonplaceholder.typicode.com',
data;
data = $.ajax ({
url: root + '/posts/1',
type: 'GET',
success: function(data) {
console.log(data.body);
}
});
}
function changeColor(data) {
$('button').on('click', function() {
$('.classy').toggleClass('blue');
$('.classy').append(data.body);
});
}
是否有人可以建议我如何从getData
获取数据并将其传递给changeColour
?
答案 0 :(得分:0)
只需在ajax成功中调用changeColor方法并传递数据即可。从getData中删除了数据变量,因为不需要它。
'use strict'
$(document).ready(function() {
console.log('Page Ready');
changeColor();
getData();
});
function getData() {
var root = 'http://jsonplaceholder.typicode.com';
$.ajax ({
url: root + '/posts/1',
type: 'GET',
success: function(data) {
console.log(data.body);
changeColor(data); //Just call the method here
}
});
}
function changeColor(data) {
$('button').on('click', function() {
$('.classy').toggleClass('blue');
$('.classy').append(data.body);
});
}
答案 1 :(得分:0)
仅从changeColor()
函数调用success:
函数。
function getData(data) {
var root = 'http://jsonplaceholder.typicode.com',
data = $.ajax ({
url: root + '/posts/1',
type: 'GET',
success: function(data) {
console.log(data.body);
changeColor(data);
}
});
}
请注意,我删除了简单的data;
行,这没有任何意义。
答案 2 :(得分:0)
您可以将changeColor函数放入getData函数的成功调用中。
function getData(data) {
var root = 'http://jsonplaceholder.typicode.com',
data;
data = $.ajax ({
url: root + '/posts/1',
type: 'GET',
success: function(data) {
console.log(data.body);
changeColor(data);
}
});
}
答案 3 :(得分:0)
你基本上有两个选择:在success函数中调用changeColor函数,或者在success函数中将数据存储在一个可以在别处访问的变量中(直接通过changeColor或传递给changeColor)。
第二个选项可以通过访问全局变量(实际上并不是一个好主意)或传入一个然后传递给changeColor的对象来实现。哪一个最好取决于你的用法。