【发布时间】:2017-09-15 01:54:38
【问题描述】:
我有一个由angularjs 和bootstrap 制作的网页,但不是ui-bootstrap。
有一个drop-down list 和一个iframe。问题是当下拉列表打开时,点击iframe不会自动关闭下拉列表。
我关注了this answer并添加了以下内容:
$(window).on('blur',function() { $('.dropdown-toggle').parent().removeClass('open'); } );
现在,点击 iframe 会关闭下拉列表。但是,关闭后,单击下拉按钮不会重新打开列表;我们必须单击 iframe 以外的其他位置或单击下拉按钮一次,然后再次单击下拉按钮打开列表。
抱歉,我无法在操场上重现该问题,但“仅第二次单击打开下拉列表”似乎是一个常见问题。我试图删除data-toggle="dropdown",但没有帮助。
有谁知道我可以尝试解决这个问题吗?
【问题讨论】:
-
这可能是因为您需要在再次触摸下拉菜单之前获得外部页面焦点。如果我正确理解问题。但是一个尝试的想法是将下拉列表包装在 ng-if 中,当单击 iframe 时,将 if 语句切换为关闭状态,然后将下拉列表重新呈现为其自然状态。
-
我同意“您需要在再次触摸下拉菜单之前先获得外部页面焦点”,因为即使我们多次单击 iframe 区域,我们也必须在单击下拉菜单之前单击其他位置-down 按钮重新打开它。但是,我不明白你说的
ng-if... -
忘记 ng-如果我认为它没有帮助的话。更多使用 jqlite 的替代方法
-
我不知道
jqlite,你能提出一个答案吗? -
@SoftTimur 你能提供更多代码吗?因为it works in jsfiddle
标签: javascript jquery angularjs twitter-bootstrap drop-down-menu