为什么这种变换不相同?

时间:2016-01-08 08:45:01

标签: javascript

我有一个脚本:

$(document).ready(function() {
    $('#userName').blur(function() {
        $.ajax({
            url : 'GetUserServlet',
            data : {
                userName : $('#userName').val()
            },
            success : function(responseText) {
                $('#ajaxGetUserServletResponse').text(responseText);
            }
        });
    });
});

通过这种方式我变得更容易了:

$(document).ready(function() {
    $('#userName').blur( getAjax() );
});

function getAjax() {
    $.ajax({
        url : 'GetUserServlet',
        data : {
            userName : $('#userName').val()
        },
        success : function(responseText) {
            $('#ajaxGetUserServletResponse').text(responseText);
        }
    });
};

生成的代码不起作用。为什么这种变换不相同?

1 个答案:

答案 0 :(得分:5)

您正在调用getAjax()而不是将其作为函数引用传递。由于$('#userName').blur( undefined ); 没有返回任何值,因此您实际上是在调用:

$('#userName').blur( getAjax );

要解决此问题,只需传递参考:

{{1}}