我在bootstrap popover中遇到了一些问题。 jquery是否在bootstrap popover中加载?
这无法正常工作。
小提琴 - http://jsfiddle.net/mVSPR/5/
// make popovers work
$("a[data-toggle=popover]")
.popover()
.click(function (e) {
e.preventDefault()
});
$('.add-action>.trigger').popover({
html: true,
placement: 'bottom',
content: function() {
return $(this).parent().find('.add-review-form').html();
}
});
$('.add-action>.trigger').popover(function (e) {
$('.rate').rateit();
});
问题我面临的问题是jquery星级评级在bootstrap popover中不起作用,而它在popover之外工作良好。
帮助我。
答案 0 :(得分:1)
$('.add-action>.trigger').popover({
html: true,
placement: 'bottom',
content: function() {
return $(this).parent().find('.add-review-form').html();
}
}).click(function() {
$('.rateit-popover').rateit();
});
修正了它:http://www.jsfiddle.net/mVSPR/6/
事情是,当popover初始化时,它会克隆源元素(add-review-form)并将其放入popover标记中。 此刻,您实际上有两个“添加 - 评论”表格'在你的页面上。
然而,不会克隆rateit绑定,因此最终会得到一个半工作的rateit插件。
诀窍是,不要让rateit自动初始化(我将div的类更改为rateit-popover),然后当单击查看按钮并显示弹出窗口时,我们才会初始化它。下次单击查看按钮时,它将再次发生,但是rateit足够智能,一旦初始化,就不会重新启动。
答案 1 :(得分:1)
原因是,您的代码:
content: function() {
return $(this).parent().find('.add-review-form').html();
}
给出了$('。add-review-form')的副本,并且bootstrap用这个副本填充你的popover,但是没有复制事件监听器,所以你需要绑定复制的$('。add-review-形式')再次与rateit。这是jsfiddle modified:
$('.add-action>.trigger').popover({
html: true,
placement: 'bottom',
content: function () {
return $(this).parent().find('.add-review-form').html();
}
}).click(function () {
$('.rateit-popover').rateit();
});