在MVC的“部分页面”中加载div时调用JavaScript函数

时间:2019-03-13 13:48:19

标签: javascript jquery asp.net-mvc

我有一个Partial页面,我正在其中加载div元素。我想在局部视图中加载每个div时调用JavaScript函数。

<p class="m-0" onload="markMessageAsDelivered('@item.isDelivered')">@item.Message</p>

这是我在剃须刀页面的JS中具有的功能。

function markChatAsDelivered(isDelivered) {
            if (!isDelivered)
                alert('markChatAsDelivered');
        }

未调用此函数。我也尝试将其放在Windows onload中,但仍然无法正常工作。请让我知道该怎么办?

1 个答案:

答案 0 :(得分:0)

我在这些事情上遇到的问题是在ASP.NET对页面进行更改之前调用onload。我使用两种解决方案:

    带有JQuery的
  1. $(document).ready()等待DOM完全加载并完成,因此您可以将一些代码迁移到其中。

  2. function pageLoad(sender, args)是内置的ASP JS函数(如后面代码中的Page_Load),在页面加载完成时被调用。您可以像第一个答案一样将一些JS迁移到此处。

就个人而言,即使我喜欢避免使用库,但我还是喜欢第一种选择,因为每个页面可以使用多个库。不过,这仅在您在母版页中调用代码时才真正有用。如果每个页面仅使用一次,则第二个选项很好,但是显然,如果您尝试在母版页和当前页中都使用它,则它将无法正常工作。因此,我建议使用JQuery,但如果必须避免使用JQuery,那么pageLoad也可以使用。