将 GET 数据从一个函数传递到另一个函数

Passing GET data from one function to another

我正在尝试将一些数据从一个函数传递到另一个函数。我已成功调用 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 吗?

只需在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);
    });
}

仅从 success: 函数调用您的 changeColor() 函数。

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; 行,该行毫无意义。

您可以将 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);
        }
    });
}

您基本上有两个选择:从成功函数中调用 changeColor 函数,或者在您的成功函数中将数据存储在可以在其他地方访问的变量中(直接通过 changeColor 或传递到 changeColor)。

第二个选项可以通过访问全局变量(这不是一个好主意)或传入一个对象来实现,该对象随后将被传递到 changeColor。哪一个最好取决于您的使用情况。