如何在页面加载时在Blazor上加载JavaScript和jQuery UI

如何在页面加载时在Blazor上加载JavaScript和jQuery UI,blazor,Blazor,我有一个管理模板,我想使用Blazor。我已经将所有JavaScript、jQuery UI和CSS放在了_host.chtml文件中。然后,我将模板分为导航、页眉和页脚等布局 加载仪表板页面后,所有引导js功能(如可折叠菜单、关闭按钮对话框)都不起作用 但是,当我尝试单击页面中的href链接,然后单击后退按钮时,JavaScript功能可以工作 你知道为什么会这样吗?我们如何加载所有jQuery UI以在CSS中对组件和布局进行加载 我尝试过JSinterop,但更多的是调用JavaScrip

我有一个管理模板,我想使用Blazor。我已经将所有JavaScript、jQuery UI和CSS放在了_host.chtml文件中。然后,我将模板分为导航、页眉和页脚等布局

加载仪表板页面后,所有引导js功能(如可折叠菜单、关闭按钮对话框)都不起作用

但是,当我尝试单击页面中的href链接,然后单击后退按钮时,JavaScript功能可以工作

你知道为什么会这样吗?我们如何加载所有jQuery UI以在CSS中对组件和布局进行加载


我尝试过JSinterop,但更多的是调用JavaScript函数。如果你有一堆jQuery UI和绑定到CSS的引导JavaScript,那么它就不起作用了。

你可以通过注入IUriHelper订阅URL更改,然后调用一些JS来添加钩子

然而,事情不会那么简单。当Blazor组件呈现时,它们可以选择创建HTML元素,例如在集合上执行foreach以呈现数据时。有很多场景可以触发无导航的重新渲染(例如单击按钮)


您需要使用事件(如@onmouseinter@onnouseout等)来显式地装饰组件,而不是使用单个函数,它们将所有内容连接起来

您可以通过注入IUriHelper来订阅URL更改,然后调用一些JS来添加钩子

然而,事情不会那么简单。当Blazor组件呈现时,它们可以选择创建HTML元素,例如在集合上执行foreach以呈现数据时。有很多场景可以触发无导航的重新渲染(例如单击按钮)


您需要使用事件(如@onmouseinter@onnouseout等)来显式地装饰组件,而不是使用单个函数,它们将所有内容连接起来

我所做的就是使用javascript互操作在组件加载时调用theme.js。我有这个

    reloadPage: function () {
            $.getScript('assets/javascripts/theme.js');
            $.getScript('assets/javascripts/theme.custom.js');
            $.getScript('assets/javascripts/theme.init.js');
        }
然后我删除了assets/javascript/theme.js的引用。。在main_host.chtml上的etc


成功了!哈哈

我所做的就是使用javascript互操作在组件加载时调用theme.js。我有这个

    reloadPage: function () {
            $.getScript('assets/javascripts/theme.js');
            $.getScript('assets/javascripts/theme.custom.js');
            $.getScript('assets/javascripts/theme.init.js');
        }
然后我删除了assets/javascript/theme.js的引用。。在main_host.chtml上的etc


成功了!哈哈

有些位可以工作,但是需要挂接到html元素事件中的任何东西都不会工作,除非在调用该脚本时已经创建了该元素。有些位可以工作,但是需要挂接到html元素事件中的任何东西都不会工作,除非在调用该脚本时已经创建了该元素。