3 回答
TA贡献1808条经验 获得超4个赞
这是 VanillaJS 中的,还要检查链接标签上的 href 是否正确解析为 CSS 文件。
const darkBtn = document.querySelector('#dark');
const lightBtn = document.querySelector('#light');
const linkTag = document.querySelector('#theme');
darkBtn.addEventListener('click', () => {
linkTag.setAttribute('href', '~/lib/bootstrap/dist/css/Dark.css')
});
lightBtn.addEventListener('click', () => {
linkTag.setAttribute('href', '~/lib/bootstrap/dist/css/Light.css')
});
TA贡献1811条经验 获得超6个赞
您可能需要以下代码:
$('#dark').click(function () {
$('#theme').attr('href', '~/lib/bootstrap/dist/css/Dark.css');
});
$('#light').click(function () {
$('#theme').attr('href', '~/lib/bootstrap/dist/css/Light.css');
});
您的代码正在寻找 href 字面以 开头的链接元素~/。在您的 razor 页面中,href 以此字符串开头。但 ASP.NET 将其替换为内容根的路径,因此对于浏览器来说,href 不以此字符串开头。
TA贡献1827条经验 获得超8个赞
我下载了 Pieterjan 解决方案,在我添加后它开始工作event.preventDefault():
$(document).ready(function () {
$('#dark').click(function () {
event.preventDefault();
$('#dynamicCss').attr('href', '/css/site-dark.css');
});
$('#light').click(function () {
event.preventDefault();
$('#dynamicCss').attr('href', '/css/site-light.css');
});
});
但刷新页面后网站又显示浅色主题。
- 3 回答
- 0 关注
- 198 浏览
添加回答
举报