如何从JavaScript调用AlpineJS函数?模态框控制实践
如何从原生JavaScript调用AlpineJS的函数?
我用AlpineJS实现了模态框的显示与隐藏功能,点击按钮时需要判断布尔值,若为true则关闭模态框,这需要和AlpineJS的数据交互。想请教能不能从原生JavaScript中调用AlpineJS的函数?
我尝试过的方法(未生效)
我尝试通过自定义事件实现,但没起作用,代码如下:
触发事件的JavaScript代码:
let event = new CustomEvent("closeModal", {}); window.dispatchEvent(event)
模态框的HTML设置:
<div x-show="isOpen()" @closeModal.window="close"> <!-- 模态框内容 --> </div>
最终实现方案(无需事件)
感谢pthomson的回答,我已经实现了功能,还找到了不需要事件的方法,代码示例如下:
HTML部分
<div x-data> <button type="button" @click="$store.modal.open()">Open Modal</button> <div x-show="$store.modal.isOpen()"> <!-- 模态框内容 --> </div> </div>
JavaScript部分
document.addEventListener('alpine:init', () => { Alpine.store('modal', { show: false, isOpen() { return this.show; }, open(){ this.show = true; }, close(){ this.show = false; } }) }) // 原生JS中调用Alpine函数 function closeModal(){ Alpine.store("modal").close(); }
内容的提问来源于stack exchange,提问作者Sebastian Mihali
相关产品推荐
相关产品推荐

