функция обратного вызова jquery - PullRequest
1 голос
/ 30 июня 2010

вместо написания кода стандартным способом:

$.get('test.xml',function(){
    //manipulate the code here
})

Я хотел написать код таким образом, чтобы упростить задачу:

$.get('test.xml',callback(data));

function callback(data){
    //manipulate with the data below...
}

но ошибка показывает "данные не определены", как я могу это исправить?

Ответы [ 3 ]

6 голосов
/ 30 июня 2010

Просто напишите

$.get('test.xml',callback);

Когда вы пишете

$.get('test.xml',callback(data));

, тогда callback выполняется немедленно (вы вызываете функцию).


Или, если data не предполагается, что это данные, возвращаемые вызовом Ajax, но какой-то параметр, который вы хотите передать в функцию, у вас есть две возможности:

  1. Сделать callback вернуть функцию.
  2. Обернуть вызов callback в анонимную функцию:

    $.get('test.xml',function(){callback(data);});
    
2 голосов
/ 30 июня 2010

Просто опустите данные. это параметр, который автоматически передается функции обратного вызова:

$.get('test.xml',callback);

function callback(data){
    //manipulate with the data below...
}
0 голосов
/ 30 июня 2010

попробовать:

$.get('test.xml',function(){callback(data)});

JS не может обрабатывать переменные для callback-функций по-вашему

...