Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果脚本中没有包含警报,jQuery不会返回结果_Javascript_Jquery - Fatal编程技术网

Javascript 如果脚本中没有包含警报,jQuery不会返回结果

Javascript 如果脚本中没有包含警报,jQuery不会返回结果,javascript,jquery,Javascript,Jquery,我有jqueryajax函数来获取倒计时对象的日期值。 该代码工作正常。分析日期以倒计时时,仅在设置日期之前将警报插入倒计时方法 以下是脚本: <script type="text/javascript"> $(document).ready(function () { debugger; var austDay = new Date(); var currDay = new Date();

我有jqueryajax函数来获取倒计时对象的日期值。 该代码工作正常。分析日期以倒计时时,仅在设置日期之前将警报插入倒计时方法

以下是脚本:

<script type="text/javascript">
        $(document).ready(function () {
            debugger;
            var austDay = new Date();
            var currDay = new Date();
            $.ajax({
                type: 'GET',
                url: '/Service/Utility/GetDownDate',
                success: function (data) {
                    austDay = new Date(parseInt(data.newDate.substr(6)));
                    //alert(austDay);
                }
            });

            austDay = new Date(austDay.getFullYear(), 1 - 1, 26);
            alert(austDay);

            $('#defaultCountdown').countdown({ until: austDay });
            $('#year').text(austDay.getFullYear());
        });
    </script>

$(文档).ready(函数(){
调试器;
var austDay=新日期();
var currDay=新日期();
$.ajax({
键入:“GET”,
url:“/Service/Utility/GetDownDate”,
成功:功能(数据){
austDay=新日期(parseInt(data.newDate.substr(6));
//警报(奥斯汀日);
}
});
austDay=新日期(austDay.getFullYear(),1-1,26);
警报(奥斯汀日);
$('#defaultCountdown')。倒计时({until:austDay});
$('#year').text(austDay.getFullYear());
});
请帮帮我。
谢谢,

因为ajax是异步的,所以您需要使用success事件来获取数据。像这样试试

<script type="text/javascript">
    $(document).ready(function () {
        debugger;
        var austDay = new Date();
        var currDay = new Date();
        $.ajax({
            type: 'GET',
            url: '/Service/Utility/GetDownDate',
            success: function (data) {
                austDay = new Date(parseInt(data.newDate.substr(6)));
                //alert(austDay);
                austDay = new Date(austDay.getFullYear(), 1 - 1, 26);
               $('#defaultCountdown').countdown({ until: austDay });
                $('#year').text(austDay.getFullYear());
            }
        });

    });
</script>
$(document).ready(function () {
    debugger;
    var austDay = new Date();
    var currDay = new Date();
    $.ajax({
        type: 'GET',
        url: '/Service/Utility/GetDownDate',
        success: function (data) {
            austDay = new Date(parseInt(data.newDate.substr(6)));
            austDay = new Date(austDay.getFullYear(), 1 - 1, 26);

            $('#defaultCountdown').countdown({ until: austDay });
            $('#year').text(austDay.getFullYear());
        }
});

$(文档).ready(函数(){
调试器;
var austDay=新日期();
var currDay=新日期();
$.ajax({
键入:“GET”,
url:“/Service/Utility/GetDownDate”,
成功:功能(数据){
austDay=新日期(parseInt(data.newDate.substr(6));
//警报(奥斯汀日);
austDay=新日期(austDay.getFullYear(),1-1,26);
$('#defaultCountdown')。倒计时({until:austDay});
$('#year').text(austDay.getFullYear());
}
});
});

实际上,这并不是在变魔术。如果您发出警报,成功事件将在用户单击“确定”按钮之前的更短时间内发生

试试这样的东西

<script type="text/javascript">
    $(document).ready(function () {
        debugger;
        var austDay = new Date();
        var currDay = new Date();
        $.ajax({
            type: 'GET',
            url: '/Service/Utility/GetDownDate',
            success: function (data) {
                austDay = new Date(parseInt(data.newDate.substr(6)));
                //alert(austDay);
                austDay = new Date(austDay.getFullYear(), 1 - 1, 26);
               $('#defaultCountdown').countdown({ until: austDay });
                $('#year').text(austDay.getFullYear());
            }
        });

    });
</script>
$(document).ready(function () {
    debugger;
    var austDay = new Date();
    var currDay = new Date();
    $.ajax({
        type: 'GET',
        url: '/Service/Utility/GetDownDate',
        success: function (data) {
            austDay = new Date(parseInt(data.newDate.substr(6)));
            austDay = new Date(austDay.getFullYear(), 1 - 1, 26);

            $('#defaultCountdown').countdown({ until: austDay });
            $('#year').text(austDay.getFullYear());
        }
});
原因

您正在调用ajax,它是异步工作的,因此您的
倒计时()
将在ajax完成之前执行。
当您发出警报时,它将有时间完成ajax调用,直到您单击“确定”按钮,然后执行
倒计时()
“控制台中有错误吗?”,我认为您应该在document.ready函数之外声明
austDay
success:
已弃用,您应该改用
.done
。请参阅@DHS:ajax的
success
选项(上面使用的一个选项)没有被弃用。
jqXHR
对象(ajax返回的内容)上的
success
方法已被弃用,取而代之的是
Promise
方法。machan倒计时不起作用。这里只有警报问题。倒计时是日期类型的倒计时。看起来Anoop首先完成了比赛。alert(data.newDate.substr(6))查看成功后的结果