Jquery 如何在单独的文件中查看此脚本?
我有一个jquery脚本,每2秒钟运行一次ajax脚本Jquery 如何在单独的文件中查看此脚本?,jquery,ruby-on-rails,Jquery,Ruby On Rails,我有一个jquery脚本,每2秒钟运行一次ajax脚本 javascript: function getvalue(){ $.ajax({ url: "http://localhost:3000/companies/#{@company.url}", type: "GET", dataType: "json", success: function (json) { $('.blabla').html(json.clicks)
javascript:
function getvalue(){
$.ajax({
url: "http://localhost:3000/companies/#{@company.url}",
type: "GET",
dataType: "json",
success: function (json) {
$('.blabla').html(json.clicks);
$('.tratata').html(json.shows);
}
});
}
javascript:
$(document).ready(function(){
getvalue();
setInterval('getvalue()', 2000);
});
当我试图在资产中移动这个脚本,并通过javascript\u include\u tag
调用他时,它开始在整个应用程序中工作,而不仅仅是在我调用他的视图中
如何修复
upd
我把这个脚本放到app/assets/javascripts/foobar.js中,并在视图中调用他
= javascript_include_tag 'foobar'
rails生成app/assets/javascripts/application.js时,会自动包含以下行:
//= require_tree .
它告诉rails将此目录中的每个文件都包含到application.js中,默认情况下,application.js在页面的头部调用。foobar.js文件中的这一行:
$(document).ready(function(){
getvalue();
setInterval('getvalue()', 2000);
});
告诉javascript在每次加载DOM时运行此代码。这就是代码在每个页面上运行的原因
要防止出现这种情况,您有多个选项(有关一些想法,请参阅),但最简单的方法可能是在DOM中查找一个元素,该元素仅位于您希望运行此操作的页面上,如下所示:
$(document).ready(function(){
if( $("#element-id-only-on-foobar-pages").is(":visable") ) {
getvalue();
setInterval('getvalue()', 2000);
}
});
你能告诉我你把这个js代码放在哪个文件中吗?如果它在application.js中,那么从这个文件中删除并添加到你的模型js.coffee文件中。我想这个问题正是你想要的