jquery - soundmanger 2 无法在 Rails 应用程序中工作

标签 jquery ruby-on-rails-3 soundmanager2

Soundmanager 2(http://www.schillmania.com/projects/soundmanager2/doc/download/) 无法在我的 ruby​​ on Rails 应用程序中运行。

仅当我添加 ?assets_debug=1 时它才有效 我尝试了所有 sm .js 文件,但每次应用程序重新启动时,它们都不起作用。

错误:

soundManager is not defined
[Break On This Error]   

soundManager.setup({

以及 Firebug 内部的 JS 代码:

<script>
//<![CDATA[
soundManager.setup({
url: '/assets/',
debugMode: false,
onready: function() {
var mySound = soundManager.createSound({
id: 'aSound',
url: '/assets/start.mp3',
onload: function() { console.log('sound loaded!', this); }
});
mySound.play();
},
ontimeout: function() {
}
});
//]]>
</script> 

有人知道为什么会发生这种情况吗?

最佳答案

您可能有两个版本的 js —— 原始源文件和为 Rails 3 Assets 管道使用而创建的编译文件(缩小的、串联的等)。

有时,JS 中的细微错误会导致编译过程生成无效代码(例如,如果一个文件不以换行符结尾,而附加了另一个文件)。当您使用 assets_debug=1 运行时,您告诉 Rails 使用不受影响的原始源文件。

调试它是一个挑战——无论是在 Firebug 还是 Chrome 调试器中,缩小的代码充其量都难以阅读。但它可以给你一个线索。

另一个可能的原因是 Rails 默认版本和 soundmanager 使用的版本之间对 jQuery 版本差异的依赖关系未解决。您可能需要检查正在使用的 jQuery 版本。但是,您报告的错误并不表明这是一个原因。

最后,确保 app/assets/javascripts/application.js 文件中满足任何实际依赖关系,也许可以通过更改这些行之前或之后指定项目的顺序来实现,这些项目是实际上不是评论:-)

//= require jquery
//= require jquery_ujs

关于jquery - soundmanger 2 无法在 Rails 应用程序中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11462242/

相关文章:

javascript - ASP.Net MVC jQuery 和插件加载顺序错误

ruby-on-rails - Rails 中的两步身份验证

javascript - 使用 API 从视频 ID 获取 YouTube 文件 URL

ruby-on-rails - 如何更改值在 View 中的显示方式?

Ruby on Rails 和使用符号调用方法基本问题

javascript - Soundcloud API/SoundManager2 SetPosition 在播放轨道之前不起作用

jquery - 带有 iOS 的 SoundManager2 - 不播放声音 onClick 事件

javascript - jQuery:在鼠标移动或单击时暂停功能

javascript - 在 jquery 中单击时更改类名

jquery - 全宽 Accordion