2011-12-01 63 views
0

我有一个JavaScript函数。在thi函数中,我正在调用如下的按钮事件。Java脚本函数保存,直到保存evenet执行完成

$("#btnSave").trigger("click"); 

我的查询是,有没有什么办法保持控制在这一行直到保存完成? 我有一些代码写在这行下面,它被覆盖。

有什么建议吗?

+0

请显示验证码。问题没有意义。 –

回答

1

如果你发布了一些代码,它会有帮助。

您可以通过两种方式完成:

1.)使用轮询。触发器调用之后,使用循环检查保存完成时必须设置的标志。从密集的js处理中保存CPU需要超时。

2.)将代码在函数内的触发器调用后执行。将此函数作为回调传递给onClick函数。

function onSaveClick(e) { 
     //do my save stuff 

     e.data.callback(); 
    } 

推荐2号。 //附加onclick事件 $(“#btnSave”)。click(onSaveClick);

//you onclick function 
function onSaveClick(event, callback) { 
    //save data 
    callback(); 
} 

//trigger 
$("#btnSave").trigger("click", afterSave); 

//after save stuff 
function afterSave(){ 
//do more stuff 
} 
+0

这里是什么?我的意思是按钮事件不显示e.data – Pankaj

+1

“e”是传递给事件回调的事件。 当您分配“点击”事件时,您必须设置回调: $(“mybutton”)。click({callback:“myAfterSaveFunction”},myOnButtonClickFunction); – kcsoft

+1

对不起,你不能更多地解释它。 – Pankaj

1

使用回调。

获取触发线下的行,并在事件成功时作为回调传递给您的保存功能。

+0

你的意思是我应该在.cs文件中移动java脚本代码?因为保存事件在.cs文件中。请再解释一下,如果我误解了一些东西。 – Pankaj

+0

当你触发你的保存按钮,完成了一些事情。我在想你正在使用AJAX请求来保存你的更改。但是,如果定期发布POST,则只需在按钮单击事件中返回false,并且不会执行任何操作。你能更好地解释你的情况吗? –

+0

是的,保存发生在Ajax请求下。我如何从保存点击事件返回false。我的意思是“$(”#btnSave“)。trigger(”click“); ”这行一旦执行下面的所有java脚本代码就将控制权发送给.cs文件。我可以看到影响UI的JavaScript代码,但保存事件是在所有Java脚本代码执行完毕后发送控制,以便UI更改正在执行回滚。 – Pankaj