Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建jQuery回调函数_Javascript_Jquery - Fatal编程技术网

Javascript 创建jQuery回调函数

Javascript 创建jQuery回调函数,javascript,jquery,Javascript,Jquery,我很难理解如何创建一个回调函数,我可以使用它来扩展选项,如本文所述。下面是我想用于回调的代码摘录 var chart = {}; chart.data = $('.liselected').attr("data"); chart.command = $('.liselected').attr("cmd"); chart.option = "option"; // Category of event request chart.sessionid

我很难理解如何创建一个回调函数,我可以使用它来扩展选项,如本文所述。下面是我想用于回调的代码摘录

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”)调用了。在(“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?
};

当然,我的尝试是失败的。用勺子喂食是很好的,但是你可以给我一个提示,我会尝试自己去探索。谢谢

最好查看jQuery插件部分:。你可以这样做:

$.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();

$(“a”)。单击(“click”,postcommand(eventrequest))
没有意义,除非
postcommand(eventrequest)
返回一个函数。当然。这是我的问题。我正在尝试为它创建一个函数。你的“尝试”在哪里?我知道您是从哪里开始制作jquery插件的,但是它被分配到jquery.prototype而不是直接分配到jquery,而且您甚至没有在代码中使用它。最重要的是,您甚至没有尝试构建返回的函数!另外,
extend
中对象的语法不正确;将
=
替换为
,和
@KevinB这就是我来这里的原因。我需要一个提示和你的专家意见。我的尝试半途而废。也许我的问题也错了。原谅我这么坏,但我还是个新手。