bootstrap popover preventDefault for click在Rails 3.2应用程序中不起作用

Jay*_*Jay 7 jquery coffeescript twitter-bootstrap

其他人在这里提出这个问题,但没有给出答案或解决方案.

这些引导程序文件列在application.js文件的顶部:

...
//= require bootstrap-tooltip
//= require bootstrap-popover
...
Run Code Online (Sandbox Code Playgroud)

我的bootstrap_additions.js.coffee文件包含:

$("a[rel=popover]").popover()
$(".tooltip").tooltip()
$("a[rel=tooltip]").tooltip()
Run Code Online (Sandbox Code Playgroud)

在一个视图中我有:

<a href="#" class="btn" rel="popover" title="Title" data-content="Some content.">click</a>
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中输入localhost:3000/assets/application.js时,会出现bootstrap-popover.js内容.另外我发现了以下内容:

jQuery(function() {
    $("a[rel=popover]").popover().on('click', preventDefault());
    $(".tooltip").tooltip();
    return $("a[rel=tooltip]").tooltip();
});
Run Code Online (Sandbox Code Playgroud)

单击链接后,浏览器显示将移至页面顶部.当我向下滚动到链接时,会显示弹出窗口.一切正常,除了preventDefault.我错过了什么?

谢谢.


更新:为了在我的代码中保持清洁,我找到了所选答案的coffeescript版本:

$("a[rel=popover]").popover().click (e) => e.preventDefault()
Run Code Online (Sandbox Code Playgroud)

小智 14

你也可以这样链:

$("a[rel=popover]")
  .on('click',function(e){
    e.preventDefault();
  })
  .popover();
Run Code Online (Sandbox Code Playgroud)


Eas*_*yCo 12

使用Twitter Bootstrap Popover

更新为Coffeescript

第一种方法

实例

$("a[rel=popover]").popover()
Run Code Online (Sandbox Code Playgroud)

处理

$("a[rel=popover]").click (event) ->
  event.preventDefault()
  event.stopPropagation()
  $(this).popover "show"
Run Code Online (Sandbox Code Playgroud)

第二种方法

直接取自他们的源代码:

$("a[rel=popover]").popover().click (e) ->
  e.preventDefault()
Run Code Online (Sandbox Code Playgroud)


Kub*_*bee 9

您可以使用'span'标记而不是'a'标记,这样您就不需要阻止默认.

也防止默认应该与事件相关联.

http://api.jquery.com/event.preventDefault/