如何设置一个函数,以便调用它而不是内联函数

时间:2011-12-28 09:10:36

标签: javascript jquery

我收到了以下代码:

接受

这样的事情:

$("input[id^='position_']").change(function() {
    //get the value of the input field marked with "position_x"
    var posX = $(this).val();
    var idArr = $(this).attr("id");
    var idTmp = idArr.split("_");
    var id = idTmp[1];
        var divX = $("div[id='"+id+"']").html();    
    make an ajax call passing the two parameters.
    $.ajax({
        type: "POST",
        url : "your_url",
        data: "pos_x="+posX+"&div_x="+divX,
        success: function(response) {
            alert(response);
        }
    });
});

我喜欢简单易懂。有没有办法可以将此代码拆分为函数,然后在此处调用函数:$("input[id^='position_']").change(function() {

此功能似乎有点复杂。我需要的是当用户单击输入字段时,我将获得该字段的值以及同一行中另一个字段的值,然后发送到Ajax。

任何人都可以看到我可以简化的方法吗?

1 个答案:

答案 0 :(得分:1)

我不明白你的意思是“简化”。它做了它必须做的事情。如果您的意思是在下面缩短代码是您的代码版本。它更难阅读,但做同样的工作。你也可以看到如何使用命名函数而不是匿名函数。

$("input[id^='position_']").change(doTheMagic);

function doTheMagic() {
    $.ajax({
        type: "POST",
        url : "your_url",
        data: "pos_x=" + $(this).val() + "&div_x=" + $("div[id='" + $(this).attr("id").split("_")[1] + "']").html(),
        success: function(response) {
            alert(response);
        }
    });
}