【问题标题】:How to clearTimeout this function?如何清除Timeout这个功能?
【发布时间】:2015-05-18 05:36:59
【问题描述】:

如何清除这个函数的超时时间?

这是我的代码,我试过了,但是不行。

我该怎么办?

.................................................. ..................................................... ..................................................... ..........

<form id="fid">
    <input type="text" id="input_type" onkeypress="stop()" onkeyup="run()"/>
</form>

    <p id="myplace"></p>

    <script>
    function run() {
        $('#myplace').hide();
        setTimeout(function(){
            $.ajax
            (
                {
                    url: 'xx.php',
                    type: 'POST',
                    data: $('#fid').serialize(),
                    cache: false,
                    success: function (data) {
                        $('#myplace').show();
                        $('#myplace').html(data);
                    }
                }
            )
        }, 3000);
    }

    function stop() {
        clearTimeout();    
    }    
    </script>

【问题讨论】:

  • 在您来这里提问之前,您真的应该养成查看MDN documentation 以了解您第一次使用的 Javascript 函数的习惯。如果您遵循了那里的建议但仍然遇到问题,那么您可以展示您所学到的知识,并在您在这里提问时描述您遇到的问题。

标签: javascript ajax settimeout cleartimeout


【解决方案1】:

您需要传递 timeoutID。见https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearTimeout

为了不污染全局范围(timerrunstop),我会将所有内容包装在 jQuery 的就绪处理程序中并使用它来绑定事件处理程序

<form id="fid">
    <input type="text" id="input_type">
</form>
jQuery(function($) {

    var myplace = $('#myplace'), form = $('#fid'), timer = null;

    $('#input_type').on({
        keypress: function() {
            clearTimeout(timer);
        },
        keyup: function() {
            myplace.hide();
            timer = setTimeout(function() {
                $.post('xx.php', form.serialize(), function(data) {
                    myplace.html(data).show();
                });
            }, 3000);
        }
    });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    • 2015-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多