I think I might have done this... not in the best way. But it's working and the result is returned in my data object. Now I need to pass on some additional parameters. How can I call handleData()
with additional parameters? I've tried this:
handleData({'likes' : true})
But that deletes the data
object which is returned from the Ajax call.
Here is my code:
// My global Ajax function to 'set' data
$.fn.setData = function(url, params){
return $.ajax({
url: site_url + url,
type: "POST",
dataType: 'json',
data: params
});
}
function registerLike() {
var like = $('.interaction .like')
var status = $(like).data('status');
var count = $(like).data('count');
like.click(function(){
if(!liked){
// I need to pass adition parameters here
like.setData('action/like', {'id' : id}).done(handleData());
} else {
// and here
like.setData('action/unlike', {'id' : id}).done(handleData());
}
});
function handleData(data){
if(data.success) {
if(data.likes){
count = count+1;
liked = 1;
} else {
if(count > 0) {
count = count-1;
} else {
count = 0;
}
liked = 0;
}
$('.interaction .like .icon').toggleClass('el-icon-heart');
$('.like-count').html(count);
}
}
}