【问题标题】:Bootstrap alert dismissal not working, rails 3.2引导警报解除不起作用,rails 3.2
【发布时间】:2012-02-11 12:07:04
【问题描述】:

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

我的屏幕顶部有一个引导样式的错误或成功警报(基于消息的第一个单词是否 ==“错误”。 我已将“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'

非常感谢任何提示!

【问题讨论】:

  • 在此问题上单击“提交”后的几秒钟内,您会意识到问题...问题是由 javascripts 文件夹中也有“jquery.js”和“jquiery-ui.js”引起的,必须有冲突的名称/类。删除 jquiery 文件后,加载页面时 js 错误消失了,并且警报解除现在可以工作了... d'oh
  • 您应该将此添加为答案并接受它:)

标签: javascript twitter-bootstrap


【解决方案1】:

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

【讨论】:

  • 谢谢!为我节省了大量的麻烦和时间:D
  • 我更新了我的 Gemfile 以指定 gem jquery-rails ~&gt; '2.0'(获取 jQ 1.7.x),但仍然没有触发关闭事件。 :-(
  • 我对rails一无所知,但是您是否也更新了客户端参考以指向新的jQuery版本?
  • 同意。用 1.7.2.min 替换 1.6.4.min 为我解决了这个问题。
【解决方案2】:

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

【讨论】:

  • 这是我的回答,实际上是有道理的。移动 jquery 和 jquery 版本是一个红鲱鱼。
【解决方案3】:

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

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

删除 jQuery 文件后,加载页面时 js 错误消失了,警报关闭现在有效

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-12
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多