我有一个相当简单的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”的元素。
但是我发现OnComplete函数似乎在thingDiv中的HTML被实际替换之前触发了......所以当我的回调去寻找“subThing”元素时,它找不到它。
这是我正在做的非常简单的例子。
我正在寻找关于我如何解决这个问题的好建议,或者更好地指出我忽略了可以完成工作的事情。
谢谢!
答案 0 :(得分:2)
您可以尝试查看completeGetThing是否实际正在运行(在此处设置警报)。我们遇到了问题,最终使用OnSuccess事件而不是OnComplete。我们正在使用此事件为加载的表着色,并且它可以正常工作。
答案 1 :(得分:1)
我使用OnSuccess。和Sly一样,它有效。