Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AJAX操作完成时未触发Javascript回调_Javascript_Jquery_Asp.net Mvc - Fatal编程技术网

AJAX操作完成时未触发Javascript回调

AJAX操作完成时未触发Javascript回调,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,给定ASP.NET MVC视图上的以下代码: <% using (Ajax.BeginForm("AddCommunity", new AjaxOptions { UpdateTargetId = "community-list", OnSuccess = "BindCommunityHover" })) { %> Add Community: <input type="text" id="communityName" name="commun

给定ASP.NET MVC视图上的以下代码:

<% using (Ajax.BeginForm("AddCommunity", 
    new AjaxOptions { UpdateTargetId = "community-list", 
    OnSuccess = "BindCommunityHover" }))
   { %>
    Add Community: <input type="text" id="communityName" name="communityName" /> 
    <input type="submit" value="Add" />
<% } %>
当AJAX结果返回时,为什么不调用BindCommunityHover

社区列表div已正确更新(操作返回部分视图)。我也尝试过设置OnComplete(而不是OnSuccess)但没有效果

BindCommunityHover方法在$(function(){…})中调用;当页面第一次加载时阻止,对于所有现有的.community项li元素,它都有效

来自控制器的部分结果将该div中的所有项替换为同一类的更多项。OnSuccess方法应该在文档更新后激发

更新:k…这有点奇怪。我在BindCommunityHover方法中添加了以下内容:

alert($(".community-item-li").size());

当页面加载和回调触发时,我会收到240的警报。因此,回调正在启动,jQuery正在匹配元素,但没有应用样式…

这是因为您的函数基本上是在调用函数时为所有这些项添加一个悬停事件


如果随后添加新元素,它们不会自动绑定。JQuery中有一个称为Live Events的新特性。我还没有深入研究过,但我想他们可能会有所帮助。否则,在添加新元素时,请确保绑定悬停函数。

好的,此解决方案分为两部分

第一个罪魁祸首是一些我在Cassini/IE中搞不清楚的讨厌的缓存东西。我尝试重新启动,阻止Cassini,重新启动VS2010…没有任何效果

在这台计算机上,我的帐户上的代码仍然无法工作。部署到IIS的版本适用于所有浏览器。如果我更改文件名,它也可以在IE中工作。不过那里有些东西坏了。如果我用Cassini/IE运行该项目,然后打开FireFox并转到该站点,它就可以工作了。我试图重新设置错误以提交一个bug,但我无法让它运行。我离题了。为了解决这个问题,我更改了.js文件的名称,并将引用移动到母版页中的另一个位置

另一件事是我必须使用OnSuccess。当我试图找出问题所在时,我转而使用OnComplete。在我解决了文件/浏览器/服务器问题后,我意识到OnComplete(根据文档)会在文档更新之前触发;元素正在更新,但随后被丢弃


OnSuccess/OnComplete可能有助于为某些人解决某些问题,不确定文件/浏览器/服务器问题……这可能是环境问题。

Josh,你说得对,你已经描述了该方法的用途,但我的AJAX回调也应该调用该方法。在我的表单中,我有OnSuccess=“BindCommunityHover”,这意味着在返回AJAX响应后,运行此方法(根据文档)。下面是MSDN链接:它声明在更新文档后调用此方法。
alert($(".community-item-li").size());