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);
        }
    }
}
 
     
     
    