【问题标题】:Telerik MVC controls, OnDocumentReady is firing twiceTelerik MVC 控件,OnDocumentReady 触发两次
【发布时间】:2011-04-28 18:55:47
【问题描述】:

我是 Telerik MVC 控件的新手,所以这可能很简单。

我开始制作一个新的 TelerikMvcApplication 解决方案。

Site.Master:

    </div>
    <%: Html.Telerik().ScriptRegistrar().DefaultGroup(group =>
          group.Combined(true).Compress(true).Add("Index.js")) %>
</body>
</html>

索引.aspx:

    <%: Html.Telerik().ScriptRegistrar().OnDocumentReady("Index.Init()") %>
</asp:Content>

Index.js:

var Index = function () {
    return {
        Init: function () {
            alert('1');
        }
    };
} ();

当我加载 Index.aspx 时,Index.js 中的Init() 函数被触发了两次,所以我看到一个接一个的警报。如果我将点击处理程序分配给Init() 函数内的按钮并使用 FireBug 点击该按钮,它实际上显示了分配给该按钮的 2 个事件。为什么会这样?

编辑

在进行了更多的萤火虫检查后,我发现对 ScriptRegistrar 的两个调用都在呈现。如何只制作一个主渲染?

【问题讨论】:

    标签: javascript jquery telerik dom-events


    【解决方案1】:

    回答我自己的问题,问题出在使用

    <%:  %>
    

    带冒号。

    为了解决这个问题,我从 Master 和 View 中删除了冒号字符,并在 Master 中调用了 Render()。

    大师:

    <% Html.Telerik().ScriptRegistrar().DefaultGroup(group =>
       group.Combined(true).Compress(true).Add("json2.js")).Render(); %>
    

    查看:

    <% Html.Telerik().ScriptRegistrar().Scripts(scripts =>
       scripts.AddGroup("IndexGroup", group =>
       group.Add("~/Scripts/Index.js"))).OnDocumentReady("Index.Init()");  %>
    

    【讨论】:

      【解决方案2】:

      对于 MVC Razor ViewEngine:

      @{
          Html.Telerik().ScriptRegistrar().OnDocumentReady(
          @<text>
              alert('onLoaded');
          </text>);
      }
      

      【讨论】:

        猜你喜欢
        • 2013-02-25
        • 2013-08-14
        • 1970-01-01
        • 2014-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多