引导警报解雇不起作用,rails 3.2

时间:2012-02-11 12:07:05

标签: javascript twitter-bootstrap

使用带有Rails 3.2的twitter bootstrap 2.0(资产/样式表中的css文件,现在不使用less或sass)

我的屏幕顶部有一个bootstrap样式的错误或成功警报(根据消息的第一个字是否=“错误”。 我添加了'bootstrap.js'和& 'bootstrap-alert.js'到assets / javascript文件夹。

以下是我布局中的代码:

<% flash.each do |name, msg| %>
  <% if msg[0..4] == "Error" %>
    <div class="alert alert-error fade in">
  <% else %>
    <div class="alert alert-success fade in">
  <% end %>
  <a class="close" data-dismiss="alert" href="#">&times;</a>
  <%= msg %>
<% end %>

在我的assets / javascripts / application.js中,我有:

$(".alert-message").alert()
$(".alert-message").alert('close')

不确定我需要两者吗?尝试使用.alert / .alert-error。

当我点击关闭符号时没有任何反应,我确定我错过了一些非常明显的东西,但我不熟悉使用JS / w Rails,无法解决这个问题。 在Chrome JS控制台中,我看到此错误消息,其中似乎是关于bootstrap-alert.js data-api:

Uncaught TypeError: Object [object Object] has no method 'on'

非常感谢任何提示!

3 个答案:

答案 0 :(得分:16)

我有同样的问题,看着你的答案bobomoreno,但它没有用。我后来发现最新版本的Bootstrap需要jQuery 1.7.x,并且不适用于旧版本的jQuery。

答案 1 :(得分:6)

我有同样的问题 - 提醒解雇对我不起作用。解决方案类似于bobomoreno的,但不一样。我有一个文件app/assets/javascripts/bootstrap.js.coffee有一些自定义的东西,这是必需的而不是bootstrap的javascripts。我通过将名称更改为bootstrap-custom.js.coffee来修复它,因此正确需要bootstrap的文件。

答案 2 :(得分:4)

正如评论中所述,问题似乎是由竞争的Javascript文件引起的。

问题是由Javascripts文件夹中的'jquery.js'和'jquery-ui.js'引起的,必须有冲突的名字/类。

删除jQuery文件后,加载页面时js错误消失,现在警报解雇工作