将jquery var传递给next / other函数

时间:2017-11-20 10:17:41

标签: javascript jquery variables

我尝试将我从焦点输出的ajax请求获得的var传递给下一个鼠标悬停函数。

但是我在第一个focusout函数中定义的var在第二个mouseover函数中是不可访问/未定义的。有一个干净简单的方法吗?

here is the jsfiddle example

$(document).ready(function ($) {
    var access_key = '123456';
    var mc;

    $('#userLoginName').on('focusout', function () {
        var email = $('#userLoginName').val()
        // verify email address via AJAX call
        $.ajax({
            url: 'https://ajaxrequesturl.de/check?key=' + access_key + '&email=' + email,
            dataType: 'jsonp',
            success: function (json) {

                // Access and use your preferred validation result objects
                console.log(json.format_valid);
                console.log(json.smtp_check);
                console.log(json.score);
                var mc = json.smtp_check;
                //alert(json.smtp_check);
                //alert(mc);    
            }
        });
    });

    $(".nextstep-inner").on('mouseover', function () {
        if (mc) {
            $(".isa_error").hide();
        } else {
            $(".isa_error").show();
        }
        alert(mc);
    });
});

这是我带有ajax请求的原始代码

{{1}}

1 个答案:

答案 0 :(得分:0)

$('#login').on('focusout', ...)函数中,您正在为该函数创建一个新的mc变量,该变量将隐藏在外部定义的另一个变量。

替换:

    $('#login').on('focusout', function() {
        var mc = $('#login').val();
        alert(mc)
    });

使用:

    $('#login').on('focusout', function() {
        mc = $('#login').val();
        alert(mc)
    });