我有一个相当简单的Ajax动作链接。操作链接的目的是从服务器获取一个局部视图,并用新的内容替换DIV的内容。
代码看起来像:
<%= Ajax.ActionLink("click me", "GetThing",
new { Mode = "Simple"},
new AjaxOptions {
UpdateTargetId = "thingDiv",
OnComplete = "completeGetThing"
})%>
如您所见,操作链接只是用服务器中的新内容替换页面(thingdiv)中DIV标记的内容。
我还为OnComplete事件调用了一个javascript函数。这里的回调函数需要对加载到thingdiv中的内容执行一些操作。
下面是我在javascript中所做的简化示例:
function completeGetThing{
if($("#thingDiv #subThing").length > -1){
doOtherThing();
}
}
我只是使用jquery从我们正在更新的DIV中获取一个名为“subthing”的元素。
但我发现,在thingdiv中的html被实际替换之前,oncomplete函数似乎已经启动了…所以当我的回调去寻找“subthing”元素时,它找不到它。
这是一个非常简单的例子。
我正在寻找一个很好的建议,建议我如何解决这个问题,或者更好的方法是找个人指出一些我忽略了的事情,这些事情可以完成工作。
谢谢!