jQuery代码即使在被注释掉后仍然被执行

我有一个基本的.js文件

//$('#show').html(' 'show')) %>'); 

调用.js文件时,上面的代码会被执行,部分会被渲染,即使它被注释掉了。 删除代码时,部分永远不会被渲染。 DOM保持不变,但我可以在命令行看到服务器部分呈现的内容。 是什么赋予了?

你正在评论JavaScript – 它在客户端执行。

在客户端看到呈现的JavaScript之前,部分呈现发生在服务器端。

换句话说,注释掉JavaScript对服务器端处理没有任何影响。 如果您不希望显示服务器端字符串,请将其注释掉:

 <%#= escape_javascript(etc) %> 

让我们假设部分呈现如下:

 

Foo bar baz

Plugh!

为JavaScript转义此内容会将换行符转换为\n (并且会转义单引号和双引号等),这样就可以在客户端进行:

 $('#show').html('

Foo bar baz

\n
Plugh!
');

无论JS是否被注释掉,除非你注释掉escape_javascript Ruby代码的结果,否则partial将会呈现。

在客户端,如果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... } 

由于你的变量不等于2,if语句不会渲染出存储在其中的内容,有效地为你“注释”该代码! 要将其重新打开,您只需将“切换”变量更改回2(或者您想要的任何’on’值)。 我只为自己找到一点工作,希望有所帮助!