0

私は今、何度も繰り返されているコードのブロックの例を持っています。

$(function(loadDatabyClickA){
    $('button').live('click', function(){

        selectedAgeType   = $(this).attr('value');

        var x       =   {};

        x.data      =   $('a').attr("data"); //selected item in tree (.liselected)
        x.command   =   $('a').attr("cmd");
        x.option    =   "x";
        x.sessionid =   docCookies.getItem("sessionid");
        x.ageType   =   selectedAgeType;
        x.showData  =   showUnderlyingData;

        var action  =   function(result, status) {

            var x_list  =   "";

            $.each(result, function(i, val){
                x_list  += "<li><h3>"+val.xtitle+"</h3></li>";
            });

        $('#x_view').append(x_list);
        };

        $.post("jsoncommand", JSON.stringify(chart), action)
        .error(function(){
            alert('error');
        });

    })
})

別の関数からアクセスできるように、このブロックを抽出するにはどうすればよいですか? 多分使用するのが好き.extend()ですか?このブロックは、次のような他の関数で使用されます。

$(function(loadDatabyClickB){
    $('button2').live('click', function(){

        selectedAgeType   =   $(this).attr('value');

        var y       =   {};

        y.data      =   $('a').attr("data"); //selected item in tree (.liselected)
        y.command   =   $('a').attr("cmd");
        y.option    =   "y";
        y.sessionid =   docCookies.getItem("sessionid");
        y.ageType   =   selectedAgeType;
        y.showData  =   showUnderlyingData;

        var action  =   function(result, status) {

            var y_list  =   "";

            $.each(result, function(i, val){
                y_list  += "<li><h3>"+val.ytitle+"</h3></li>";
            });

            $('#y_view').append(y_list);
        };

        $.post("jsoncommand", JSON.stringify(y), action)
        .error(function(){
            alert('error');
        });

    })
})

手がかりがないので、これを行う方法のヒントを教えてください。私はそれを自分で単純化します。よろしくお願いします。

4

3 に答える 3