如何为jQuery的trigger()函数创建回调函数?
问题描述:
我使用trigger()
强制表单提交,并且我需要在表单提交完成后执行一个函数。我认为唯一的方法是使用回调函数,但似乎trigger
不允许回调函数。我怎样才能达到相同的结果?我想要的东西将相当于以下内容:如何为jQuery的trigger()函数创建回调函数?
$('#fileUploadButton').trigger('click',function(){
// my callback function code goes here.
});
答
您可以将表单提交为AJAX请求。如果请求成功,你可以做任何事情。另一种选择是使用postMessage在两个帧之间进行通信。
例如,对于一个AJAX请求:
$(":submit").click(function(event) {
event.preventDefault();
$.ajax({
type : "POST",
url : $(this).parents("form:first").attr("action"),
data : $(this).parents("form:first").serialize(),
})
.done(function(data) {
// submit is done: do anything
})
});
随着事件是同步的,这一点儿也不是有意义的做到这一点。只需在第一行之后添加下一行,它将在单线程中执行。如果您提交表单,则页面会重新加载,并且没有回调。 – adeneo 2013-05-05 21:18:10
的确如此,但表单正在被提交到一个''iframe''中,所以我需要知道它何时通过提交。 – 2013-05-05 21:22:32
然后,您可能需要一个自定义事件,当表单提交后,它会向父窗口发送回调,并且突然变得非常复杂。 – adeneo 2013-05-05 21:26:01