我有点困惑,我怎么能把我的三个功能混合起来缩短它

时间:2013-07-10 20:26:15

标签: javascript jquery

我需要一个想法,我如何将所有这些功能加在一起,他们只有buyer1 buyer2 buyer3任何想法都没有什么区别?提前谢谢

它会有所帮助,因为我有许多看起来相似的代码,并且js packer没有多大帮助

function buyer1() {
    var f = $("#buy_id").val();
    var n = $("#buyer_id").val();
    var z = $("#token_id").val();
    var t = $("#buy_value").val();
    $.ajax({
        url: "ajax.php",
        type: "post",
        data: "action=buyer1&pet_id=" + f + "&my_id=" + n + "&token=" + z + "&buy_value=" + t + "",
        dataType: "json",
        success: function (e) {
            token_id = e.token_id;
            message = e.message;
            value = e.value;
            $("#buy_value").val(value);         
            $("#token_id").val(token_id);
            $("#buyerdialog").fadeIn(300);
            $("#buyerresult").html(message);
        },
        error: function () {}
    })
}
function buyer2() {
    var f = $("#buy_id").val();
    var n = $("#buyer_id").val();
    var z = $("#token_id").val();
    var t = $("#buy_value").val();
    $.ajax({
        url: "ajax.php",
        type: "post",
        data: "action=buyer2&pet_id=" + f + "&my_id=" + n + "&token=" + z + "&buy_value=" + t + "",
        dataType: "json",
        success: function (e) {
            token_id = e.token_id;
            message = e.message;
            value = e.value;
            $("#buy_value").val(value);         
            $("#token_id").val(token_id);
            $("#buyerdialog").fadeIn(300);
            $("#buyerresult").html(message);
        },
        error: function () {}
    })
}
function buyer3() {
    var f = $("#buy_id").val();
    var n = $("#buyer_id").val();
    var z = $("#token_id").val();
    var t = $("#buy_value").val();
    $.ajax({
        url: "ajax.php",
        type: "post",
        data: "action=buyer3&pet_id=" + f + "&my_id=" + n + "&token=" + z + "&buy_value=" + t + "",
        dataType: "json",
        success: function (e) {
            token_id = e.token_id;
            message = e.message;
            value = e.value;
            $("#buy_value").val(value);         
            $("#token_id").val(token_id);
            $("#buyerdialog").fadeIn(300);
            $("#buyerresult").html(message);
        },
        error: function () {}
    })
}

4 个答案:

答案 0 :(得分:5)

将买方ID作为字符串传递给函数作为参数:

function buyerX(buyer) {
    var f = $("#buy_id").val();
    var n = $("#buyer_id").val();
    var z = $("#token_id").val();
    var t = $("#buy_value").val();
    $.ajax({
        url: "ajax.php",
        type: "post",
        data: "action=" + buyer + "&pet_id=" + f + "&my_id=" + n + "&token=" + z + "&buy_value=" + t + "",
        dataType: "json",
        success: function (e) {
            token_id = e.token_id;
            message = e.message;
            value = e.value;
            $("#buy_value").val(value);         
            $("#token_id").val(token_id);
            $("#buyerdialog").fadeIn(300);
            $("#buyerresult").html(message);
        },
        error: function () {}
    })
}

buyerX("buyer1");
buyerX("buyer2");
buyerX("buyer3");

答案 1 :(得分:4)

使用buyer函数的参数,我将其命名为buyerId

function buyer(buyerId) {
    var f = $("#buy_id").val();
    var n = $("#buyer_id").val();
    var z = $("#token_id").val();
    var t = $("#buy_value").val();
    $.ajax({
        url: "ajax.php",
        type: "post",
        data: "action=buyer" + buyerId + "&pet_id=" + f + "&my_id=" + n + "&token=" + z + "&buy_value=" + t + "",
        dataType: "json",
        success: function (e) {
            token_id = e.token_id;
            message = e.message;
            value = e.value;
            $("#buy_value").val(value);         
            $("#token_id").val(token_id);
            $("#buyerdialog").fadeIn(300);
            $("#buyerresult").html(message);
        },
        error: function () {}
    })
}

现在,

buyer1 = function() { buyer(1) }
buyer2 = function() { buyer(2) }
...

或者您可以直接调用新的买家功能。

答案 2 :(得分:3)

将参数传递给函数以指示买方编号。 。

function buyer(index) {
    var f = $("#buy_id").val();
    var n = $("#buyer_id").val();
    var z = $("#token_id").val();
    var t = $("#buy_value").val();
    $.ajax({
        url: "ajax.php",
        type: "post",
        data: "action=buyer" + index + "&pet_id=" + f + "&my_id=" + n + "&token=" + z + "&buy_value=" + t + "",
        dataType: "json",
        success: function (e) {
            token_id = e.token_id;
            message = e.message;
            value = e.value;
            $("#buy_value").val(value);         
            $("#token_id").val(token_id);
            $("#buyerdialog").fadeIn(300);
            $("#buyerresult").html(message);
        },
        error: function () {}
    })
}

这样更容易看到,这里有两条更改的行:

function buyer(index) {

。 。 。和。 。

data: "action=buyer" + index + "&pet_id=" + f + "&my_id=" + n + "&token=" + z +

答案 3 :(得分:0)

似乎唯一不同的是传递的action参数值。也许你可以简单地将该值传递给函数。

function buyer(action) {
    var f = $("#buy_id").val();
    var n = $("#buyer_id").val();
    var z = $("#token_id").val();
    var t = $("#buy_value").val();
    $.ajax({
        url: "ajax.php",
        type: "post",
        data: "action="+action+"&pet_id=" + f + "&my_id=" + n + "&token=" + z + "&buy_value=" + t + "",
        dataType: "json",
        success: function (e) {
            token_id = e.token_id;
            message = e.message;
            value = e.value;
            $("#buy_value").val(value);         
            $("#token_id").val(token_id);
            $("#buyerdialog").fadeIn(300);
            $("#buyerresult").html(message);
        },
        error: function () {}
    })
}