我正在使用jquery webcam plugin和闪存保存方法。我希望在用户单击“保存”后设置一条消息,以便他们知道它正在保存。我的代码是这样的:
$('#savepicmessage').html("Saving picture, please wait");
webcam.capture();
webcam.save('/savephoto.php');
问题是只有在保存图片后才会显示“保存图片”信息。有没有办法阻止执行.html(“保存图片,请稍候”)调用后的代码,以便在消息显示之前不执行?
我可以使用setTimeout实现它,并在从那里调用的函数中捕获并保存,但这不够可靠。
我看了看,然后推迟了。但这似乎没有用。
答案 0 :(得分:0)
根据插件的文档,您可以构建插件的加载方式:
$("#camera").webcam({
width: 320,
height: 240,
mode: "callback",
swffile: "/download/jscam_canvas_only.swf",
onTick: function() {},
onSave: function() {
$('#savepicmessage').html("Saving picture, please wait");
},
onCapture: function() {},
debug: function() {},
onLoad: function() {}
});
之前没有使用此插件,因此不确定您是否会执行此操作onSave
,onTick
,onCapture
或onLoad
,但如果您展示了初始化代码,会更有帮助。
答案 1 :(得分:0)
一般来说,我使用promises和$ .when()之类的东西来协调AJAX调用或动画等异步事件。但事实上,这种行为几乎就像它的异步一样令我感到惊讶。
但是,我有一个建议。你可以在第一次调用之后循环使用$('#savepicmessage')。html()来设置它并测试返回的内容吗?也许一旦返回的值与您尝试将其设置为匹配,您就可以使用网络摄像头功能,并且在调用网络摄像头之前,用户可以看到您的消息。