Kat*_*ate 10 javascript twitter-bootstrap
我有一个Bootstrap popover,其中包含一个JS元素,点击后,使用Bootstrap网站上显示的手动方法关闭popover,即
$('#element').popover('hide')
Run Code Online (Sandbox Code Playgroud)
但是,然后在打开popover的元素上点击两次以重新打开它.这就好像它仍然认为弹出窗口正在显示,所以第一次点击是切换它关闭,然后第二次点击然后再次打开它.有谁知道如何使用JS正确关闭弹出窗口以避免这种情况?我创造了以下小提琴来演示这个问题.
http://jsfiddle.net/fxqzn4xd/1/
非常感谢.
更新:此问题与提议的问题不重复
一如既往地感谢SO社区保持整洁和相关的地方.但是,这不是拟议问题的重复.该问题的问题在于弹出窗口直到第一次点击才初始化.因此,第一次单击不会打开弹出窗口,但会初始化它,以便第二次和所有后续点击工作.
这不是我发现的问题.弹出窗口是在页面加载时初始化的,所以我的第一次点击会打开弹出窗口.使用手动.popover('hide')方法关闭时,第二次单击则不起作用.即每个其他点击在我的场景中起作用.这些是由不同问题引起的不同问题.链接帖子中的问题是在第一次点击之前初始化弹出窗口,我已经这样做了.
我报告了我在GitHub上的twbs bootstrap项目中发现的问题,结果发现这是一个已知的bug,在7月份的3.3.5版中首次报道.它有一个3.3.6的里程碑修复但是下滑(最近出现了3.3.6),现在有3.3.7的里程碑.关于Github的详细信息:
调用.popover('hide')可防止在下次单击#18860时打开popover
好消息是,有一个简单的解决方法可以在等待它提交到3.3.7时应用.我会把它作为解决方案发布.
更新2 同意:这是新提出的"重复"问题的副本.看起来问问者在我面前遇到了这个问题!我会在这里留下这个问题,但很明显我(和其他人)在寻找时并没有找到那个,所以希望它可以提供帮助.
Kat*_*ate 10
感谢GitHub用户'julesongithub'提供此解决方法.使用.popover('hide')将其放在与要关闭的弹出窗口相同的页面上可以解决问题.本质上,它通过重置隐藏方法没有执行的弹出窗口的'inState.click'变量来工作.
$('body').on('hidden.bs.popover', function (e) {
$(e.target).data("bs.popover").inState.click = false;
});
Run Code Online (Sandbox Code Playgroud)
小智 9
我使用的解决方法是触发弹出窗口的元素上的click()函数,因为以下原理:您只想在显示弹出窗口时"隐藏"弹出窗口,并且显示弹出窗口的元素也是把它藏起来.话虽这么说,click()会让它消失.代替
$('#element').popover('hide')
我用
$('#element').click()
到目前为止效果很好......
| 归档时间: |
|
| 查看次数: |
4123 次 |
| 最近记录: |