【发布时间】:2020-07-15 20:05:20
【问题描述】:
我有一个正在运行的 sapper 应用程序,在现代浏览器中运行良好,如果可以的话,我正在尝试支持 IE11。
我遇到的问题是没有事件修饰符触发。我的代码如下所示:
<script>
let active = false;
function clickHandle() {
alert("Hello");
if( !active ) {
active = true
window.document.body.classList.add('m-active')
} else {
active = false;
window.document.body.classList.remove('m-active')
}
}
</script>
<div on:click|preventDefault={clickHandle}>
<svg height="33" viewBox="0 0 30 33" width="30" xmlns="http://www.w3.org/2000/svg">
<g fill="#2e2e46" fill-rule="evenodd">
<path d="m29.2499952 0-29.2499952 3.64484922v6.51349338l29.2499952-3.64464779z"/>
<path d="m29.2499952 11-29.2499952 3.6448492v6.5134934l29.2499952-3.6446478z"/>
<path d="m29.2499952 22-29.2499952 3.6448492v6.5134934l29.2499952-3.6446478z"/>
</g>
</svg>
</div>
IE11 不会触发任何on:click 事件。我正在使用默认的 rollup.config - 不确定它是否是我无法支持 IE11 的原因之一,因为尝试在 IE11 中测试 https://svelte.dev/tutorial/event-modifiers 不起作用,所以可能猜测它不支持。
【问题讨论】:
-
只是事件处理程序失败了,还是客户端应用程序根本没有安装? (您可以通过包含
console.log('running')之类的内容来测试它并检查它是否显示在 devtools 中。)如果是后者,下面 digby280 的答案可能是正确的 -
你可以尝试检查一下bubble或者Bbabel.js。此外,您可以添加必要的 polyfill 并尝试检查 es-6 shim。您可以参考此博客以获取详细信息。 blog.az.sg/posts/svelte-and-ie11
-
大家好,对不起。整个应用程序运行良好,只是事件不会在 IE11 中启动。我将尝试此处列出的建议,并让您知道我的进展情况。就配置而言,我有点超出我的深度,需要做一些家庭教育。
标签: events internet-explorer-11 svelte sapper