我很难让功能延迟3秒..这是在图像上 -
function base64_tofield() {
$('#formfield').val($.scriptcam.getFrameAsBase64());
document.form.submit();
};
我试过了:
setTimeout( function () {
base64_tofield();
}, 3000);
无济于事。表格只是提交没有3秒延迟 - 任何想法?我需要“阻止”表单还是什么?
谢谢!
图片代码:
<img id="btn1" onclick="base64_tofield()">
答案 0 :(得分:4)
Live Demo :警告会在3秒后弹出。
试试这个:
<img id="btn1" onclick="new_fun()">
function new_fun()
{
setTimeout( function () {
base64_tofield();
}, 3000);
}
function base64_tofield() {
$('#formfield').val($.scriptcam.getFrameAsBase64());
document.form.submit();
};
答案 1 :(得分:1)
你可以用这样的超时来调用函数
setTimeout(base64_tofield, 3000);
答案 2 :(得分:1)
Euh,是的,这听起来像个主意。现在,您可以直接定义函数“我需要'阻止'表格或什么?”
base64_tofield()
,而无需使用jquery。有什么理由吗?
在jQuery中添加了事件参数,允许您执行event.preventDefault()
$("#btn1").click(function(event){
// do i need to 'block' the form or what?
event.preventDefault();
setTimeout(base64_tofield, 3000);
});
不确定您的图片是如何添加到网页的,但是css类而不是ID和/或.on()
也可以在这里提供帮助。
答案 3 :(得分:1)
您可以使用window.setTimeout()。 setTimeout返回一个timeoutID,可用于在触发操作之前取消该操作。
如果要在jquery回调函数中设置超时,则应将目标函数调用包装到匿名函数中,而不是仅输入目标函数名。
var delay = 3000;
var timeoutID = setTimeout(function(){base64_toField();},delay);
//if you need to cancel the function call before it's triggered:
clearTimeout(timeoutID);
编辑:我刚看到您的表单提交没有3秒延迟。你应该取消对事件的默认操作:
$("form").submit(function(e) {
e.preventDefault();
//do other stuff
}