繁体   English   中英

如何在不单击链接的情况下加载数据?

[英]How to load the data without clicking on the link?

我正在开发MVC应用程序。 我正在尝试开发一个评论框。

我已经写了一个代码,在这个代码中,我已经写了一个过程,当用户点击Show Comment链接时,注释就会出现。

现在,我想更改功能,而无需单击show Comments按钮,应该加载所有评论。

我正在尝试这样做,但是没有用。

显示评论链接代码

 <div class="span12" style="margin-left:0px; margin-top:50px;">
      <span style="font-size:16px;">
          @Ajax.ActionLink("Show Comments", null, null, null, new { id = Model.Id, @class = "addremark" })

        <div class="RemarkBox"></div>
        <span class="CommentAdd"></span>
      </div>

我想在页面加载时加载评论,我希望在加载页面时显示评论加载,但是我仍然想单击Show Comment链接。

 $(document).ready(function () {

    $('a.addremark').click(addremarkClick);

    // Call on load also
    addremarkClick();

    });

    function addremarkClick(event)
    {

        var url = '@Html.Raw(Url.Action("ShowCommentBox", "Comment", new { Id = "idValue", EntityType = "Payment" }))';
        if (typeof event !== 'undefined') url = url.replace("idValue", event.target.id);
        else url = url.replace("idValue", $('a.addremark')[0].id);
        $('.RemarkBox').load(url);
        $(this).closest('div').find('div.RemarkBox').show();
        return false;
    }

function addremarkClick()
    {
        alert("Clciked");
        var url = '@Html.Raw(Url.Action("ShowCommentBox", "Comment", new { Id = "idValue", EntityType = "Payment" }))';
         if (typeof event !== 'undefined') url = url.replace("idValue", event.target.id);
         else url = url.replace("idValue", $('a.addremark')[0].id);
         $('.RemarkBox').load(url);
         $(this).closest('div').find('div.RemarkBox').show();
         return false;
    }

最好的方法是先加载页面,然后使用js,获得可用的显示评论链接列表$('a.addremark') ,然后触发触发事件,而不是触发click事件,可以遍历集合,然后进行AJAX调用,以便在运行时加载注释,而无需用户单击链接。

同样,使用SetTimeOut javascript调用在特定的持续时间后刷新页面上的注释将很有用,因此用户也不必刷新页面或单击链接来查看更新的注释。 您会看到Stackoverflow中使用的类似方法,突然要求我单击以重新加载帖子以查看编辑。 因此它将提供更好的可用性。

编辑

以下是可能的步骤

  1. 页面加载完成后,在文档准备就绪后,调用javascript方法,该方法找到所有与该类一样为addremark的链接。

  2. 对于每个链接元素,您将与之关联要获取评论的帖子ID。

  3. 使用postid进行AJAX调用,然后获取所有注释,然后在相应的div中对其进行更新。

  4. 可以将上述方法传递给javascript方法的setInterval参数。 这种方法请参考这里

在页面中插入以下js,请勿将其插入通用js。

<script>
       window.setInterval(function(){
          addremarkClick();
          }, 600000);// run this after every minute
</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM