javascript - 在 Blazor 应用程序中使用 Jquery 函数而无需单击按钮
问题描述
我是 .net core 和 blazor 的新手,但正在试验,但努力能够在 mvc 中实现一个简单的 jquery 调用......
所以我在一个名为 selfWritingText.js 的 js 文件中有一个 jquery 方法
$("#typed").typed({
strings: ["LOADING RECORDS...", "ONE MOMENT PLEASE...", ""],
typeSpeed: 60,
startDelay: 0,
backSpeed: 40,
backDelay: 500,
loop: true,
cursorChar: "|",
contentType: 'html'
});
我已经在我的主机文件中添加了调用
<script src="_framework/blazor.server.js"></script>
</body>
</html>
<script src="~/js/jquery.min.js"></script>
<script src="~/js/interop.js"></script>
<script src="~/js/SelfWritingText.js"></script>
现在在我的剃须刀页面中,我添加了@inject IJSRuntime JsRuntime
.
protected override async Task OnInitializedAsync()
{
this.VisibleProperty = true;
await JsRuntime.InvokeVoidAsync("selfWritingText");
await LoadData();
await Task.Delay(2000);
this.VisibleProperty = false;
}
还有我应该调用jquery的html
<SfSpinner @bind-Visible="@VisibleProperty" Type="@SpinnerType.Bootstrap" Size="50" CssClass="e-customClass">
@*<h3 style="font-family:open sans,Helvetica Neue,Helvetica, Arial, sans-serif; color:#298282">LOADING....</h3>
<br />*@
<div class="type-wrap">
<!-- add static words/sentences here (i.e. text that you don't want to be removed)-->
<span id="typed" style="white-space:pre;" class="typed">
</span>
</div>
</SfSpinner>
但我只是得到这些错误,任何人都可以告诉我我做错了什么......谢谢。
解决方案
当您通过 IJSRuntime 调用 InvokeVoidAsync 方法时,它将在“窗口”对象(表示浏览器中打开的窗口的对象)内搜索该方法。
尝试在您创建的 javascript 文件中以这种方式编写您的方法:
window.selfWritingText = () => {
$("#typed").typed({
strings: ["LOADING RECORDS...", "ONE MOMENT PLEASE...", ""],
typeSpeed: 60,
startDelay: 0,
backSpeed: 40,
backDelay: 500,
loop: true,
cursorChar: "|",
contentType: 'html'
});}
然后,记住不能在 OnInitializedAsync 方法中调用 javascript 方法,否则你会得到一个异常!JavaScript 互操作调用只能在 OnAfterRenderAsync 生命周期方法期间执行。
还要记得把你的 js 文件放在 _host.chstml 文件中!
<script src="~/selfWritingText.js"></script>
推荐阅读
- python - 在所有后端代码中使用感知日期时间对象
- c++ - 在 C++ 中将 LPCSTR 转换为 LPCWSTR,ATL 不可用
- html - 当我在标题下方添加一个部分时出现水平滚动条
- javascript - 使用带有角度js的javascript多个下拉菜单
- react-native - 如何使用 mapStateToProps 将项目添加到我的商店
- locust - 使用 100% 的 CPU 分发的 Locust 主服务器停止生成用户
- .net - API 请求体是如何创建的?
- alexa - Alexa SmartHome 技能 - 无法配置界面“Alexa.SeekController”工作
- python - 每列不同的 na_rep
- javascript - 在 Angular 项目中使用 circular-menu.js