为什么元素上的load(),on(),bind()等不可用

时间:2019-05-13 17:06:04

标签: javascript jquery .net-core razor-pages

我最近从WPF移到了Razor Pages(单页应用程序,而不是MVC Razor Views),并且无法访问元素上的功能。

在我的局部视图(crews.cshtml)

@page
@model CrewsModel
<body>
    <div class="container">
        <div class="row>">
            <button class="btn btn-primary" id="clickyButton">refresh</button>
            <p id="timeDisplays" class="row">                
                <partial name="Controls/DateTimeDisplayControl" , model="3/1/2019" />
            </p>
        </div>        
    </div>

</body>
<script src="~/lib/jquery/dist/jquery.js" type="text/javascript"></script>
<script>
      var element = document.getElementById("timeDisplays");
      console.log(element.className);
      element.load("/DateTimeComponent?handler=DisplayTimePartial");
      console.log("Reloaded");
</script>

我能够获取element.className写入控制台。但是,当我调用加载函数(或“ on”或“ bind”)时,我得到:

TypeError: element.load is not a function

我也尝试过:

element.on("load","/DateTimeComponent?handler=DisplayTimePartial");

为了进行测试,我将函数的主体替换为:


            if (typeof jQuery != 'undefined')
            {
                // jQuery is loaded => print the version
                alert(jQuery.fn.jquery);
            }

确保已加载jQuery并安装了正确的版本。

最终目标是根据需要在“ timeDisplays” div中重新加载部分页面视图。

我正在使用.net core 2.2和jquery 3.3.1

1 个答案:

答案 0 :(得分:3)

您没有使用jQuery api加载方法,而是使用了没有加载方法的浏览器api 因此,您可以这样做:

script>
      var element = $("#timeDisplays");
      element.load("/DateTimeComponent?handler=DisplayTimePartial");
      console.log("Reloaded");
</script>

让我知道这是否对您有用。