Bootstrap 在 $(this) 元素上弹出
Bootstrap popover over $(this) element
我有一堆动态创建的元素,我能够显示调用此脚本的弹出窗口:
$('.gantt').popover({
selector: '.bar',
title: 'Test title',
content: 'Test content',
trigger: 'hover',
placement: function() { return 'top' },
container: 'body'
});
现在,我需要从一个函数中动态传递标题和内容,然后我这样做了:
[...]
onItemMouseover: function(elm, data) {
elm.popover({
selector: '.bar',
title: data.title,
content: data.content,
trigger: 'hover',
placement: function() { return 'top' },
container: 'body'
});
}
[...]
但是弹出窗口没有打开。是不是少了什么?
如果我调用 elm.remove()
元素被删除,那么 elm 会正确触发 DOM 元素。
这是一个补丁,可能有更好的官方方法,但我是这样解决的:
- 创建了一个 popoverContent 全局变量
- 已将 data.content 分配给 onItemMouseover 内的 popoverContent
- 调用脚本的第一个版本并从 popoverContent 变量中检索内容值
如果您有更好的解决方案,请分享。
更新
代码如下:
var popoverContent
$(document).ready(function () {
createGantt(data);
$('.gantt').popover({
[...]
content: function () {
return popoverContent;
},
[...]
});
}
function createGantt(data) {
$('.gantt').gantt({
[...]
onItemMouseover: function(elm, data) {
popoverContent = data.detailContent;
},
});
};
我有一堆动态创建的元素,我能够显示调用此脚本的弹出窗口:
$('.gantt').popover({
selector: '.bar',
title: 'Test title',
content: 'Test content',
trigger: 'hover',
placement: function() { return 'top' },
container: 'body'
});
现在,我需要从一个函数中动态传递标题和内容,然后我这样做了:
[...]
onItemMouseover: function(elm, data) {
elm.popover({
selector: '.bar',
title: data.title,
content: data.content,
trigger: 'hover',
placement: function() { return 'top' },
container: 'body'
});
}
[...]
但是弹出窗口没有打开。是不是少了什么?
如果我调用 elm.remove()
元素被删除,那么 elm 会正确触发 DOM 元素。
这是一个补丁,可能有更好的官方方法,但我是这样解决的:
- 创建了一个 popoverContent 全局变量
- 已将 data.content 分配给 onItemMouseover 内的 popoverContent
- 调用脚本的第一个版本并从 popoverContent 变量中检索内容值
如果您有更好的解决方案,请分享。
更新
代码如下:
var popoverContent
$(document).ready(function () {
createGantt(data);
$('.gantt').popover({
[...]
content: function () {
return popoverContent;
},
[...]
});
}
function createGantt(data) {
$('.gantt').gantt({
[...]
onItemMouseover: function(elm, data) {
popoverContent = data.detailContent;
},
});
};