0

我正在使用haml格式的Rails,并且我有一个表在最后一列有一个启动模式的按钮(链接):当点击模式链接时,出现“b.preventDefault不是函数”

= link_to('#', 'data-toggle' => 'modal', 'data-target' => '#team_modal', 'data-project' => project.id) do %span { 
    class: 'glyphicon glyphicon-tasks', 
    'aria-hidden' => 'true', 
    'aria-hidden' => 'true', 
    'data-toggle' => "tooltip", 
    'title' => 'Team', 
    'data-project' => project.id 
} 

当我点击它,语气显示了,那么下面的错误也出现在控制台:

Uncaught TypeError: b.preventDefault is not a function 
b.hide @ bootstrap.min.js?body=1:7 
b.toggle @ bootstrap.min.js?body=1:7 
(anonymous function) @ bootstrap.min.js?body=1:7 
jQuery.extend.each @ jquery.js?body=1:612 
jQuery.fn.jQuery.each @ jquery.js?body=1:242 
a.fn.modal @ bootstrap.min.js?body=1:7 
(anonymous function) @ bootstrap.min.js?body=1:7 
jQuery.event.dispatch @ jquery.js?body=1:3059 
jQuery.event.add.elemData.handle.eventHandle @ jquery.js?body=1:2677 

我该如何解决这个问题?

+0

你是否因为纯粹的危险而在你的'application.js'文件中同时拥有bootstrap脚本('bootstrap')和最小化的bootstrap('bootstrap.min')脚本? – TheWanderingMind

+1

你也有两次''aria-hidden'=>'true'',但我不确定这是否正确。 – Shomz

+0

@BishopBarber我在'application.js'中找到了这样的几行: 'config.assets.precompile <<“redesign/bootstrap.css” config.assets.precompile <<“redesign/bootstrap.min.css” 。 .. config.assets.precompile <<“redesign/bootstrap.js” config.assets.precompile <<“redesign/bootstrap.min.js” –

回答

0

多次尝试后,终于被我删除的重复,如:

config.assets.precompile << "redesign/bootstrap.js 

这旁边,我删除了纯脚本,并保持最小的脚本,因为:

config.assets.precompile << "redesign/bootstrap.css" 
config.assets.precompile << "redesign/bootstrap.min.css" 
config.assets.precompile << "redesign/bootstrap.js" 
config.assets.precompile << "redesign/bootstrap.min.js" 

有这样的:

config.assets.precompile << "redesign/bootstrap.min.css" 
config.assets.precompile << "redesign/bootstrap.min.js" 

注:我不知道w这样做的帽子,但它的作品。如果有人知道为什么保持最小脚本的错误消失,请评论它。

+2

原因很明显,您正在创建两次相同的事件处理程序,因此代码正在执行两次.. –