Bra*_*lin 5 javascript popover twitter-bootstrap
我正在使用引导弹出框并<select>在弹出窗口内有一个字段,以便用户更改语言.
如果他们在弹出窗口外单击,我希望它消失,所以我使用标签data-trigger="focus"内的属性<a>来完成此操作.
但是,如果他们单击<select>下拉菜单,则弹出窗口会在单击某种语言之前消失.
以下是一个bootply供您参考 - 非常感谢任何帮助.
http://www.bootply.com/SEM4ophIhx
使用Javascript:
$(function () {
$('[data-toggle="popover"]').popover()
})
$(function () {
$('[rel="popover"]').popover({
container: 'body',
html: true,
content: function () {
var clone = $($(this).data('popover-content')).clone(true).removeClass('hide');
return clone;
}
}).click(function (e) {
e.preventDefault();
});
});
Run Code Online (Sandbox Code Playgroud)
HTML:
<a href="#" role="button" data-placement="right" data-trigger="focus" rel="popover" data-popover-content="#profilesettingsaction">
<span class="glyphicon glyphicon-cog"></span>
</a>
<div id="profilesettingsaction" class="hide">
<ul>
<li>
<select name="language">
<option value="">???????: ???????? ??????? ???????</option>
<option value="">??</option>
<option value="">??</option>
<option value="">Nederlands: Nederland</option>
<option value="">English: United Kingdom</option>
<option value="" selected="">Language: English</option>
<option value="">Français: France</option>
<option value="">Italiano: l'Italia</option>
<option value="">??????</option>
<option value="">Português: Portugal</option>
<option value="">Español: México</option>
</select>
</li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
$('[data-toggle="popover"]').popover();
$('body').on('click', function (e) {
$('[data-toggle="popover"]').each(function () {
//the 'is' for buttons that trigger popups
//the 'has' for icons within a button that triggers a popup
if (!$(this).is(e.target) && $(this).has(e.target).length === 0 && $('.popover').has(e.target).length === 0) {
$(this).popover('hide');
}
});
});
Run Code Online (Sandbox Code Playgroud)
您只需捕获主体上的点击事件并检查目标是否是弹出窗口的子级。然而这确实很慢。
| 归档时间: |
|
| 查看次数: |
3122 次 |
| 最近记录: |