【发布时间】:2013-03-05 18:43:49
【问题描述】:
我的 application.js 文件越来越乱。
application.js:
//
//= require jquery
//= require jquery_ujs
//= require bootstrap
$(document).ready(function(){
$('#authorinfo').popover();
});
$(document).ready(function(){
$('#publisherinfo').popover();
});
...[and many more similar functions]
//= require_tree .
查看:
<a class="btn inline" href="#" id="authorinfo" rel="popover" data-content="Section...."><i class="icon-question-sign"></i></a>
bootstrap popover javascript 似乎不适用于类,只有 id 元素,而且我也很难将 javascript 移出 application.js。
关于如何重构的任何想法?
【问题讨论】:
-
您可以将 appplication.js 之外的代码提取到单独的文件中。如果您使用
//=require_tree .,它将自动包含在页面js中 -
我把函数放在 app/assets/javascripts/objectinfo.js 中,它们不再起作用了。
-
@Bob,这对我来说似乎是一个足够的答案(而不仅仅是评论)。
-
@JimStewart - 将其作为单独的答案发布)。
-
还有一件事你不需要多次使用
$(document).ready(function(){,你可以将所有这些内部逻辑添加到单个定义中。这实际上意味着内部代码只有在文档准备好后才会运行,因此无需多次定义。
标签: javascript ruby-on-rails twitter-bootstrap