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

原因很明顯,您正在創建兩次相同的事件處理程序,因此代碼正在執行兩次.. –