javascript - 模态不显示在 vue.js 中

标签 javascript html css vue.js web-deployment

所以我有一个问题,我在 vanilla js 中制作了一个具有各种功能的 map 应用程序。我现在正在尝试将所有这些代码翻译成 vue.js,这是一个缓慢的过程。我有一个模式,我想在单击“添加步骤”按钮时弹出,但它没有。我已阅读文档并查看示例,但我无法弄清楚。

正如我提到的,我尝试了在 stackoverflow 和其他地方找到的各种示例。

我知道解决方案可能确实非常简单,但我卡住了,这个模式不会显示。有什么提示或技巧吗?使用vue需要注意什么? 这是我整个元素的一个 fiddle ,它很健康,https://jsfiddle.net/8Lmjrhgs/ . 非常感谢您的宝贵时间!

这就是我的 vanilla.js 模态的样子

let btn = document.getElementById("myBtn");
let span = document.getElementsByClassName("close")[0];

btn.onclick = function() {
    modal.style.display = "block";
};
span.onclick = function() {
    modal.style.display = "none";
};
window.onclick = function(event) {
    if (event.target == modal) {
        modal.style.display = "none";
    }
};```

最佳答案

注:data() { return { ...

data()  {
return {
showModal: false,
    isEditing: false,
    user: {
        mapTitle: 'Add a title to your map',
        mapDescription: 'Add a description to your map',
    },
    steps: [{title: "", description: ""}],
    step: {title: "", description: ""}
}

},

不要将您的 v-show 放在过渡组上,将它放在直接子级上,点击实际上也是如此,我也不会切换“关闭模态”的值,因为您没有“打开”模态”至少 id 使那些以相同的方式处理。

<transition name="modal" :modalData='customData' @close='showModal = !showModal'>
        <div class="modal-mask" v-show="showModal">

我认为这里的主要问题是您创建组件的方式,在这种特定情况下这是多余的,因为无论如何所有代码都在那里(但您的真实代码可能实际上是导入它,所以我不能肯定地说) 删除你的脚本标签得到了模态。

https://jsfiddle.net/1kv24wyr/1/

关于javascript - 模态不显示在 vue.js 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55966047/

相关文章:

javascript - 什么是 data-* HTML 属性?

javascript - 网站无法使用 Javascript 关闭

jquery滑动内容

html - Chrome 或 FF 等同于 IE Debugger 的 Css Changes Summary?

css - 时事通讯中的 Outlook 2007/2010 和 GMail 段落间距问题

即使使用相同的 css 文件,CSS 页面也不相等

javascript - 在 Google 脚本中显示进度

javascript - ECMAScript 2017 : Difference between string literal, StringValue、字符串值和 SV

javascript - 我可以使用 location.href 生成变量的 url 吗?

JQuery 获取除某些 TD 之外的表的 HTML