在$(function(){}中定义的函数时,Ajax页面onclick不起作用

时间:2016-12-07 10:05:18

标签: javascript jquery ajax function

定义两个这样的函数:

    <script>
        $(function () {
            function testb() {
                alert("ddd");
            }
        })

        function testa() {
            alert("ddd");
        }
    </script>

当页面加载显示ajax页面,然后从ajax页面调用thoese函数时,testa将被成功调用但不是testb

1 个答案:

答案 0 :(得分:0)

如果你的函数在document.ready中,那么你也可以在ajax成功中调用全局函数。如果您的ajax呼叫是全局的。那么你将无法调用document.ready中的函数。因为范围限制..

示例:document.ready中的Ajax

 function testb() {
    alert('ddd');
}
$(function () {

    $('[id$=btnsubmit]').on('click', function () {

        $.ajax({
            type: "GET",
            dataType: "json",
            url: "/Content/test",
            success: function (data) {
                // alert(data);
                testa();
                testb();
            }
        });

    });
    function testa() {
        alert('zxfgsfg');
    }
});

它会起作用..

如果您仍想以这种方式调用该功能,请检查以下解决方案:

    function tesss() {
    alert('ddd');
}

var M7 = {};

$('[id$=btnsubmit]').on('click', function () {
    $.ajax({
        type: "GET",
        dataType: "json",
        url: "/Content/test",
        success: function (data) {
            // alert(data);
            M7();
            tesss();
        }
    });

});
$(function () {
    M7 = function () {
        alert('zxfgsfg');
    };
});