我在WooCommerce中有一个非常复杂的产品,它有一个复杂的变体选择器。
为了简化事情,你只需点击你喜欢的变体的照片(页面上的任何地方(,并为你选择它。
所以我只是在照片上添加了一个事件监听器,只要你点击图像,就会触发点击正确的变化复选框:
Photo_Variation1.addEventListener('click', () => {
Variation1.click()
})
这很好,但浏览器会自动跳转到原始变体选择器,因为它在单击事件之后/期间会聚焦。这在用户体验方面相当令人困惑。
所以我花了几个小时试图找到一个解决方案。但到目前为止,我唯一糟糕的成功是通过将其添加到eventListener:中,使其在Safari中工作
Variation1.blur()
我发现它在其他浏览器中不起作用,因为焦点事件直接发生在mousedown事件之后。(在Safari中,它是在点击之后。(
然而,当我尝试单独触发mousedown
函数(使用"preventDefault"
(时,根本没有选择任何内容。
你知道我如何触发点击并阻止聚焦点击的元素,或者其他阻止浏览器跳转的解决方法吗?
PS:我只使用了8个小时的JavaScript,请宽恕我D
您可以通过以下操作以编程方式将复选框设置为选中:
Photo_Variation1.addEventListener('click', () => {
var myCheckBox = document.getElementById("myCheckBoxId");
if(myCheckBox.checked) {
myCheckBox.checked = false;
} else {
myCheckBox.checked = true;
}
})
这里还有更多的信息可以帮助你。https://www.w3schools.com/jsref/prop_checkbox_checked.asp