使用普通javascript按钮而不是html href触发href
我有一个由html按钮触发的模式。相反,我想用香草Javascript触发模式。最终,我想通过日期计算触发模式,提醒用户一些事情,但这是另一天的战斗 现在,如果我能用Javascript函数而不是html按钮触发模式,我会非常高兴。我不想使用jquery,我正在努力使事情简单明了 以下是HTML:使用普通javascript按钮而不是html href触发href,javascript,html,twitter-bootstrap,Javascript,Html,Twitter Bootstrap,我有一个由html按钮触发的模式。相反,我想用香草Javascript触发模式。最终,我想通过日期计算触发模式,提醒用户一些事情,但这是另一天的战斗 现在,如果我能用Javascript函数而不是html按钮触发模式,我会非常高兴。我不想使用jquery,我正在努力使事情简单明了 以下是HTML: <a href="#openModal">Open Modal</a> <div id="openModal" class="modalDialog">
<a href="#openModal">Open Modal</a>
<div id="openModal" class="modalDialog">
<div>
<a href="#close" title="Close" class="close">X</a>
<h2>Modal Box</h2>
<p>This is a sample modal box using CSS3.
</p> <p>You could do a lot of things here.</p>
</div>
</div>
您可以“模拟”从JS单击功能。简单地说,在DOM中获取对锚元素的引用并对其执行click事件。它的行为就像您手动单击它一样
const anchor = document.querySelector('a');
anchor.click();
如果模态是按照我认为的方式工作的(对于纯CSS也是如此,顺便说一句,它是不存在的),那么您应该能够运行
window.location.hash = '#openModal';
打开模式和
window.location.hash = '#';
关闭它
这是一个有效的例子。感谢“Virhonestrom”提供的答案:
HTML:
@MikeB请在你的问题中包括所有CSS代码,以及所有与此相关的代码,否则很难回答help@MikeB我添加了一个工作示例,看看是否有帮助。谢谢!是的,我用工作示例提琴工作了…非常感谢,但我不明白。让我们这样说:我正在为3周前,我打开了我的文本编辑器,输入了“@MikeB,别担心:)。让我一步一步地解释。你知道对DOM的引用是什么吗?它是一个连接浏览器中呈现的DOM和JavaScript的“链接”。我相信你有一些功能,当触发时应该显示模态?为了做到这一点,您的JS必须连接到所述DOM。我们可以通过查询您的页面(文档)来实现这种链接。在查询中,我们指定需要“a”元素。当我们收到这样的引用时,我们可以发出元素上的任何事件,就好像用户与它交互一样。在你的情况下,我们需要点击事件。谢谢你,我保存了你的答案,以防我遇到需要DOM的东西,我没有使用yetGood运气进一步发展。您可以从所有人给出的答案中选择一个,将此问题标记为已回答。也鼓励向上投票有用的答案,因为这会激励用户更加乐于助人。干杯谢谢系统说我在这里太新了,不会影响公众投票。我要求您添加css,因为知道模态功能基于
:target
伪类非常重要,这在查看HTML时并不明显。明白了,再次感谢您提供了解决此问题的示例
window.location.hash = '#';
<button onclick="openModal()">Open Modal</button>
<div id="openModal" class="modalDialog">
<div>
<a title="Close" class="close" onclick="closeModal()">X</a>
<h2>Modal Box</h2>
<p>This is a sample modal box using CSS3.</p>
<p>You could do a lot of things here.</p>
</div>
</div>
function openModal(){
window.location.hash = '#openModal';
}
function closeModal(){
window.location.href = '#';
}