请帮我解决这个问题。我输入很少,当输入未聚焦且输入值为空时,我想显示带有警告的弹出窗口。
这就是我所做的。但它的行为是不正确的。 另请参阅FIDDLE。
要重现我的错误,请按照以下说明操作:
我哪里错了?提前谢谢!
$('input').blur(function(){
if( !$(this).val() ) {
$(this).popover({
title: 'Warning!',
content: 'Value can not be empty',
placement: 'bottom'
}).popover('show');
} else {
$(this).popover('hide');
}
})
答案 0 :(得分:3)
您应该使用popover('hide')
而不是popover('destroy')
。因为隐藏只是隐藏它,但它仍然是一个弹出窗口。因此它将出现在Mouseover / Focus上。
$('input').blur(function(){
if( !$(this).val() ) {
$(this).popover({
title: 'Warning!',
content: 'Value can not be empty',
placement: 'bottom'
}).popover('show');
} else {
$(this).popover('destroy');
}
})
尝试Fiddle
答案 1 :(得分:1)
此外,您可以!$(this).val()
$(this).val() == ''
$('input').blur(function(){
if( $(this).val() == '' ) {
$(this).popover({
title: 'Warning!',
content: 'Value can not be empty',
placement: 'bottom'
}).popover('show');
} else {
$(this).popover('destroy');
}
})
答案 2 :(得分:1)
在bootstrap 4中,.popover('destroy')
已替换为.popover('dispose')
。
我意识到这是一个古老的问题,但这个问题首先是关于这个主题的谷歌搜索,如果我知道毁灭被改变了,它可以节省我数小时的头痛。
答案 3 :(得分:0)
Popover ('hide')
只是隐藏,使用('destroy')
。
有关所有popover方法的详细信息,请参阅:
http://www.tutorialspark.com/twitterBootstrap/TwitterBootstrap_Popover_Javascript_Method_destroy.php