我有一个基本的.js这个文件里面
//$('#show').html('<%= escape_javascript(render(:partial => 'show')) %>');
当.js文件被调用时,上面的代码会被执行并且即使它注释掉的部分呈现。 当代码被删除,部分永远不会被渲染。 该DOM保持不变,但我可以看到在命令行由服务器提供的部分存在。 是什么赋予了?
我有一个基本的.js这个文件里面
//$('#show').html('<%= escape_javascript(render(:partial => 'show')) %>');
当.js文件被调用时,上面的代码会被执行并且即使它注释掉的部分呈现。 当代码被删除,部分永远不会被渲染。 该DOM保持不变,但我可以看到在命令行由服务器提供的部分存在。 是什么赋予了?
你注释掉的JavaScript - 其执行上的客户端。
该部分呈现发生在服务器端,客户端曾经看到的JavaScript渲染之前。
换句话说,注释掉的JavaScript对服务器侧的处理零效果。 如果你不希望被显示在服务器端的字符串,其注释掉:
<%#= escape_javascript(etc) %>
假设该部分呈现这样的:
<h1>Foo bar baz</h1>
<div>Plugh!</div>
逃离这对JavaScript将会把新行成\n
(并会逃避单精度和双引号等),让你与这个客户端上:
$('#show').html('<h1>Foo bar baz</h1>\n<div>Plugh!</div>');
无论是否JS被注释掉与否,局部会呈现,除非你注释掉的结果escape_javascript
Ruby代码。
在客户端,如果JS被注释掉,它不应该更新show
的HTML -你说这是什么?
请检查是否是这样的线,或者你有这个调用别的地方:
//$('#show').html('<%=escape_javascript(render(:partial => 'show'))%>');alert('This is the line');
也许你escape_javascript功能插入新行? 这将结束注释,并导致任何将要执行的新行之后。
我也有类似的问题,并想出了一个变通方法是什么,我想它。 或许,这样的事情会帮助你!
相反注释的代码行出,尽量只建立一个逻辑运算符,给你一个“开/关”上你想运行的功能切换。 我定住了类似这样的,所以我可以关掉脚本,但保留以备将来参考:
var toggle = 1;
if(toggle == 2){
functions that you want to run when turned on...
}
由于您的变量不等于二,if语句不会呈现出什么存储在它的内部,有效地“评论”的代码为你! 要重新打开所有你需要做的是改变“切换”变回2(你想或“开”值等等)。 只要一点点变通,我发现我自己,希望有所帮助!