javascript中的页面加载脚本多次运行

时间:2011-11-29 13:22:46

标签: javascript asp.net-mvc-3 razor

我有Index.cshtml个文件。我有两个div元素。我在一个div中渲染了部分视图,如下所示:

<div id="div1">
    @Html.Partial("_FutureAddEditClaim", Model.NewClaim)
</div>
<div id="div2"></div>

在javascript中,我创建了两个新的div元素。其中一个我附加了div1。在_FutureAddEditClaim.cshtml中,我有一个在加载时运行的函数:

$(function() {
    alert("called");
});

当应用程序运行时,警报消息显示两次。任何人都可以告诉我为什么会在_FutureAddEditClaim.cshtml发生这种情况。

我在Index.cshtml中有页面加载功能。这很好。

2 个答案:

答案 0 :(得分:1)

您说您在其中一个div1元素中“附加了div”。这似乎是因为你有两次加载元素的JavaScript会被触发两次的原因 - 一次最初然后再追加它。

答案 1 :(得分:0)

这不表示页面加载时的事件。这将在文档准备就绪时运行,并且您可以在文档准备就绪时运行许多块。

$(function() {
    // Runs when the document is ready
    alert("called");
});

您需要扫描源文件以查看是否......

  1. 源文件中有两个类似的代码块,在文档准备就绪时运行
  2. 源文件中有另一个alert("called")
  3. 例如,如果您通过AJAX加载局部视图,则每次加载时都可能会发生这种情况