2013-12-04 3 views
1

Я пишу настраиваемый плагин jQuery, который загружает данные из flickr.Пользовательский плагин jQuery с обратным вызовом JSONP

Поэтому я пользуюсь starter from pixelgraphics.

Как определить функцию обратного вызова, которая лежит в моей области?

Я попытался следующие, но все функции не определены:

$.ajax({ 
    url: 'http://api.flickr.com/services/rest/', 
    data: { 
     method: 'flickr.photosets.getPhotos', 
     api_key: base.apiKey, 
     photoset_id: base.setID, 
     format: 'json', 
     jsoncallback: base.processData 
     //jsoncallback: 'base.processData' 
     //jsoncallback: processData 
     //jsoncallback: this.processData 
    }, 
    dataType: 'jsonp', 
    contentType: "application/json; charset=utf-8" 
}) 
.done(function() { 
    console.log("success"); 
}); 
base.processData = function(data) { 
    console.log(data); 
}; 

Edit:

К сожалению решение pszaba не работает. Рабочий раствор:

$.ajax({ 
    url: "http://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos&format=json&api_key=" + base.apiKey + "&photoset_id=" + base.setID + "&jsoncallback=?", 
    type: "GET", 
    cache: true, 
    dataType: 'jsonp', 
    success: function(data) { 
     base.processData(data); 
    } 
}); 

ответ

0

Попробуйте один

jsonpCallback: "processData" 

и не забудьте определить функцию

function processData(json) {} 

EDIT

Вы также можете использовать ' контекст '

$.ajax({ 
    url: 'http://api.flickr.com/services/rest/', 
    context: base, 
    ... 

, а затем вы можете назвать как:

jsoncallback: this.processData 
+0

пожалуйста, прочитайте вопрос. base - моя область, и я хочу вызвать функцию base.processData() –

Смежные вопросы