jQuery代码即使在被注释掉后仍然被执行
我有一个基本的.js文件
//$('#show').html(' 'show')) %>');
调用.js文件时,上面的代码会被执行,部分会被渲染,即使它被注释掉了。 删除代码时,部分永远不会被渲染。 DOM保持不变,但我可以在命令行看到服务器部分呈现的内容。 是什么赋予了?
你正在评论JavaScript – 它在客户端执行。
在客户端看到呈现的JavaScript之前,部分呈现发生在服务器端。
换句话说,注释掉JavaScript对服务器端处理没有任何影响。 如果您不希望显示服务器端字符串,请将其注释掉:
<%#= escape_javascript(etc) %>
让我们假设部分呈现如下:
Foo bar baz
Plugh!
为JavaScript转义此内容会将换行符转换为\n
(并且会转义单引号和双引号等),这样就可以在客户端进行:
$('#show').html('Foo bar baz
\nPlugh!');
无论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’值)。 我只为自己找到一点工作,希望有所帮助!