Ben sadece yapılan bir arama API kullanarak benim site için biraz Widget yapıyorum. Kısaca, ben son mesajları veya üst anma mesajları almak istiyorum. Bunun için sekmeler lazım.
Varsayılan olarak, yükleme, ben son gönderileri değilim. Ben En mesajların tıklarsanız, ben doğru sırayla veri almak benim arama API söylemek bir var değiştirmek benim eklenti içinde bir işlevi çağırmak istiyorum.
Ben çok açık mıyım bilmiyorum .. benim (basitleştirilmiş) koduna bir göz atın:
jQuery.fn.Widget=function(id_place,id_event,options){
// here, i tell that by default, you have to load latest posts
var defaults = {
launch : '1', // in seconds
max : '10', // nmber posts to retrieve
sort : 'last'
};
var options = $.extend({}, defaults, options);
// here the function I'd like to call to change the options.sort used to call the search API
var change_tab = function(sort) {
switch(sort){
case 'last' : active[0] = ' class="active"'; break;
case 'top' : active[1] = ' class="active"'; break;
case 'info' : active[2] = ' class="active"'; break;
default: break;
}
options.sort = sort;
}
// here, I try to call the change_tab function above, inside my plugin
$(".sort_top").click(function(){
Widget(id_place,id_event,options).change_tab('top');
}) ;
// here, an extract of me tab menu of my widget. With the link to change sorting method
$("#myWidget").html('<a href="javascript:;" class="sort_top"><li'+active[1]+'>Top Questions</li>');
// here, I retrieve data an arrange it
jsonp_callback = function(data) {
if ( data['results'].length > 0 ) {
// do something
}
}
// here, I call my search API, with the param sort to retrieve data by time or popularity
widget_search = function() {
$.ajax({
dataType: 'jsonp',
data: 'mydata&callback=?',
jsonpCallback: 'jsonp_callback',
url: 'http://myserver.com/search.php',
success: function () {
},
});
}
// call the getJSON and refresh function
setTimeout("widget_search()",1000*options.launch);
var auto_refresh = setInterval( function () { widget_search(); }, 1000*options.refresh);
};