jquery星级不在bootstrap popover中工作

时间:2014-04-04 05:25:17

标签: javascript jquery html css twitter-bootstrap

我在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之外工作良好。

帮助我。

2 个答案:

答案 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足够智能,一旦初始化,就不会重新启动。

  

来源:http://rateit.codeplex.com/discussions/449496

答案 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();
});