在我的基于论坛的网站上,每篇文章下方都有一个链接,用于举报垃圾邮件或滥用行为。点击该链接时,服务器会调用Web服务,当调用返回时,包含该链接的跨度(请参见下面的代码)将更新为“Post reported”(邮政报告)之类的内容,或者如果发生错误,则会显示“发生错误同时报告后”,这是javascript代码:如何更新正确的跨度?
<script src="/js/MicrosoftAjax.js" type="text/javascript" language="javascript"></script>
<script type="text/javascript" language="javascript">
var spanToUpdate;
function ReportPost(updateSpan, postID)
{
if (confirm("Are you sure you want to report this post as spam or abuse?"))
{
spanToUpdate = updateSpan;
var proxy = SiteWS.ReportPost(postID, onReportPostSuccess, onReportPostFailure);
}
}
function onReportPostSuccess(sender, e)
{
spanToUpdate.innerHTML = "Post reported";
}
function onReportPostFailure(sender, e)
{
spanToUpdate.innerHTML = "An error occurred while reporting the post";
}
</script>
这是报告链接:
<div class="post">
<p>post text here</p>
<span><a href="#" onclick="ReportPost(this.parentNode, <%= post.ID %>);return false;" title="Report spam or abuse">Report Post</a></span>
</div>
Other posts ...
正如你所看到的,我使用一个变量,spanToUpdate,举行对包含报告链接的跨度的引用,这意味着如果用户在呼叫之前报告另一个帖子(即点击另一个报告链接)瓮,最后一篇文章的跨度将更新两次,前一篇将不会更新,有没有解决方法?
非常感谢
+1这似乎是一个好主意,我要试试这个..谢谢 – 2009-05-03 08:44:55
嗯..只是想知道,updateSpan是指匿名方法调用时的相同跨度? – 2009-05-03 08:54:50