Создание функции обратного вызова jQuery

0

У меня проблема с пониманием того, как создать функцию обратного вызова, которую я могу использовать для расширения параметров, как указано в этом руководстве. Вот фрагмент кода, который я хочу использовать для обратного вызова;

var chart       =   {};
chart.data      =   $('.liselected').attr("data"); 
chart.command   =   $('.liselected').attr("cmd");
chart.option    =   "option"; // Category of event request
chart.sessionid =   docCookies.getItem("sessionid");
chart.ageType   =   selectedAgeType;
chart.showData  =   showUnderlyingData;

var action  =   function(result, status) {

    $('#thumbnails .error').remove();
    var chart_list  =   "";

    $.each(result, function(i, val){
        chart_list += //Custom HTML Output
    });

    $('#chart_view').html(chart_list);
};

$.post("jsoncommand", JSON.stringify(chart), action);

Так что я могу позвонить с помощью $("a").on("click", postcommand(eventrequest)), я попытался создать такую функцию;

$.fn.postcommand = function(){
    var settings = $.extend({
        item        :   {},
        data        :   $('.liselected').attr("data"),
        command     :   $('.liselected').attr("cmd"),
        option      :   "specify query",
        sessionid  :    docCookies.getItem("sessionid"),
        ageType     :   selectedAgeType,
        showData    :   showUnderlyingData,
    }, options );

    return //How do I make the output of HTML result is customizable?
};

Но, конечно, моя попытка - провал. Кормление ложкой - это хорошо, но вы всегда можете дать мне подсказку, и я попытаюсь исследовать самостоятельно. Благодарю!

  • 3
    $("a").on("click", postcommand(eventrequest)) не имеет смысла, если postcommand(eventrequest) возвращает функцию.
  • 0
    Конечно. Это мой вопрос. Я пытаюсь создать функцию для этого.
Показать ещё 3 комментария
Теги:

1 ответ

1

Возможно, неплохо проверить раздел плагина jQuery: http://learn.jquery.com/plugins/advanced-plugin-concepts/. Вы могли бы сделать что-то вроде этого:

$.fn.postcommand = function (options) {

    // define some default values for your plugin
    var default = {
        callback: function () {}
    }

    // merge default settings,  with the ones given  
    var settings = $.extend( {}, defaults, options );

    return this.each(function() {
        var $this = $(this);
        $this.on('click', function(event) {
          settings.callback();
          event.preventDefault();
        });
    }
});

И затем используйте свой плагин на некоторых ссылках:

$('a.useCallback').postcommand();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню