修复inspinia中popover的点击问题
修复inspinia中popover的点击问题
Part1:修复问题
在inspinia2.9的版本中, notifications.html这个文件中的点击示例是无法出现的
在F12中会出现如下的错误提示:
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。需要删除代码段中的位置浮动的auto
<!--data-placement="auto bottom"把原先这段中的auto去除掉,变成位置就好了-->
<button type="button" class="btn btn-primary"
data-toggle="popover"
data-placement="bottom"
data-content="气泡提示">
气泡提示底部
</button>
就可以出现如下图的提示信息了:
Part2:扩展功能(popConfirm)
实现一个confirm的确认功能,类似于下图所示的情况!
具体代码:
function popConfirm(source,title,successCall){
$(source).popover({
placement:"top",
selector: false,
trigger: 'click',
html:true,
title : title,
content:'<p class="popover-body-p" style="text-align:center;padding-top:10px;"><button type="button" data-bc="ok-btn" class="btn btn-primary btn-xs">继续</button> <button type="button" class="btn btn-default btn-xs">取消</button></p>'
});
$(source).off('shown.bs.popover');
$(source).off('hidden.bs.popover');
$(source).on('shown.bs.popover', function () {
$('body').on('click', function(e) {
// console.log(e.target);
var edom = $(e.target);
var edomClass = $.trim(edom.attr("class"));
if(edomClass.indexOf("popover-header") >=0 || edomClass.indexOf("popover-body")>=0) {
console.log("header/body click return");
return;
}
var bc = $.trim($(edom).data("bc"));
if(bc=="ok-btn") {
if(typeof(successCall)!='undefined'){
console.log("调用成功回调函数")
successCall();
}
$(source).popover('hide');
$('body').unbind(e);
return;
}
$(source).popover('hide');
$('body').unbind(e);
});
});
$(source).on('hidden.bs.popover',function(){
$(source).popover("disable");
});
$(source).popover('enable').popover("show");
}
Part3: 心得分享
- $("#element").popover('destroy'); 是用不通的,会报错,解决就是先每次隐藏都禁用TA,在激活触发
- 原先点击body的空白或其他区域,TIP是不消失的,需要增加额外的事件去处理
wgenerator原创,转载请注明。
更多好文可以扫描下方二维码去查看

更多精彩