0
<li>
    <div class="slidera_img">
    <a href="image.jpg" rel="example_group" title="<a href='#' onClick='ajaxpost(@item.Id)'><img src='foo.jpg'/></a>">
    <img  src="@Url.Action("ViewImage", "Image", new { id = item.Id, imageType = "thumb" })" alt="" width="100" height="100" />
    </a>
    </div>   
    <div class="slidera_num">@item.VoteCount</div>
</li>

我有上面的代码,它打开了一个模态框,slidera_img div 中的 href 使用以下代码生成了一个 ajax。之后,我希望能够将带有 slidera_num 类的 div 更新为我从 ajax 请求中获得的当前值。

<script type="text/javascript">
    function ajaxpost(id) {
        var item = $(this).parent();
        alert(item);
        $.get('@Url.Action("VoteAjax","Home")', { id: id }, function (response) {
            item.closest("li").find(".slidera_num").html(response.vote);
        });
    }

我在上面试过但没有运气。

我怎样才能做到这一点?

谢谢。

4

2 回答 2

1

首先只是链接到您需要的图像:

<a href="image.jpg" rel="example_group"><img  src="@Url.Action("ViewImage", "Image", new { id = item.Id, imageType = "thumb" })" alt="" width="100" height="100" /></a>

然后调用fancybox来显示它。在该调用中,您可以与onComplete返回项目的事件挂钩,然后调用您需要更新页面的任何其他 ajax 调用。所以只需调用它:

$("img[rel='example_group'").fancybox({ onComplete: function(item){
  $.get('@Url.Action("VoteAjax","Home")', { id: item.id }, function (response) {
        $(item).closest("li").find(".slidera_num").html(response.vote);
    });
}});
于 2012-06-01T09:58:07.743 回答
0

在不知道 fancybox 究竟是如何工作的情况下,我对你帮助不大,但我可以提出一些建议:

  1. 如果有 javascript 错误,请检查您的浏览器。如果 ajaxpost() 或 ajax 回调函数失败,您的代码将无法工作。
  2. 在带有调试器的浏览器中打开您的页面,例如带有 Web Inspector 的 webkit 浏览器或带有 Firebug 的 Firefor,并在您的 ajaxpost() 和 ajax 回调中放置一个断点,各一个。检查您是否选择了正确的元素。item 是你所期望的吗?ajax 回调中的选择器链是否找到了您期望它找到的内容?
  3. 告诉原始 ajaxpost() 的样子以及您添加的具体内容。还请告诉我们您的fancybox 加载时您的html 会转换成什么。您也可以在 Web Inspector 或 Firebug 中看到这一点。有了这些信息,也许有人可以提供帮助。
于 2012-06-01T09:40:12.447 回答