如何延迟函数调用?

时间:2011-07-30 20:40:42

标签: jquery

在调用函数时,如何延迟执行函数(beginUpload())?我尝试了函数delay(),但在提交表单后,函数仍然立即执行。我不希望函数在一个间隔内反复执行。我只是想延迟执行一段时间。有人有什么想法吗?

<form action="testing12345.php" target="progressFrame" method="post" id="uploadform" enctype="multipart/form-data" onsubmit="beginUpload().delay(8000);">

4 个答案:

答案 0 :(得分:5)

将其从DOM中取出并使用setTimeout:

HTML:

<form action="testing12345.php" target="progressFrame" method="post" id="uploadform" enctype="multipart/form-data">

JQuery的:

$('#uploadForm').submit(function(event){
    event.preventDefault(); // Prevent the actual form submission so the page remains.
    var sub = setTimeout(function(){
        beginUpload();
    },8000);
});

答案 1 :(得分:3)

这应该可以解决问题:

setTimeout(beginUpload, 8000);return false;

您需要返回false才能停止浏览器提交表单。

答案 2 :(得分:1)

JavaScript setTimeout函数就是你所追求的。您可以在表单标签中调用它,例如

<form action="testing12345.php" target="progressFrame" method="post" id="uploadform" enctype="multipart/form-data" onsubmit="setTimeout(beginUpload(), 2000);">

其中2000 = 2秒

或者您可以在beginUpload方法中使用类似的方法

答案 3 :(得分:0)

.delay不会阻止提交。

onsubmit="setTimeout(beginUpload, 8000), return false;"