Javascript和Remotipart-为什么单引号和双引号很重要
Javascript and Remotipart - Why does single quotes vs double quotes matter?
因此,在使用Remotipart远程上传文件时,我遇到了一个非常有趣的问题。我在update.js.erb
视图中尝试了以下两个版本,服务器在成功上传文件后发送:
<%= remotipart_response do %>
$("#container").html('<p>Success!</p><%= link_to('Back', gallery_items_path, :remote => true) %>');
<% end %>
和
<%= remotipart_response do %>
$("#container").html("<p>Success!</p><%= link_to('Back', gallery_items_path, :remote => true) %>");
<% end %>
第一个版本成功地更改了#container
中的标记,第二个版本失败,没有任何错误,无论是服务器端还是客户端。我认为单引号和双引号只是JSON运行时的问题,但我似乎错了。我还注意到Remotipart的例子只使用了单引号,我不确定这是否是故意的。
我使用的是Rails 3.2.1、Remotipart 1.0.2和(不确定这是否重要)Chrome 17。
有人知道是什么原因造成的吗?
编辑:回答亚历克斯的问题:
在第一种情况下,所呈现的输出如预期的那样:
<div id="container">
<p>Success!</p>
<a href="/gallery_items" data-remote="true">Back</a>
</div>
在第二种情况下,正如我所说,<div id="container">
的内容没有变化。
link_to生成带有双引号的链接标记,并在javascript 中关闭引号
在第二种情况下传递给浏览器的实际js为;
$("#container").html("<p>Success!</p><a href="/gallery_items" data-remote="true">Back</a>");
外部字符串包含在"
中作为其分隔符,但由于内容也包含"
,因此会中断。(x = "aa"bb"
无效)。
前一个示例使用'
分隔符,因此没有问题。
要使用"
,必须转义link_to
的返回以生成
$("#container").html("<p>Success!</p><a href='"/gallery_items'" data-remote='"true'">Back</a>");
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 为什么“;未定义的“;在JavaScript中结束循环
- 为什么这在IE中的工作方式与在Firefox中不同
- 知道为什么我的旋转木马不会自动更改图片吗
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- 为什么在变形之前不缺少Fx
- 为什么JavaScript在for循环为3时向所有4发出警报
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- 为什么Airbnb风格指南说不鼓励依赖函数名称推断
- 为什么要使用0>javascript中的0
- 为什么无法在TypeScript中导出类实例
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 为什么我的d3.jsselectAll+过滤器没有过滤
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- 为什么忽略了eval()代码中的语法错误
- 为什么在画布上画线;t出现
- 为什么js事件消失了
- 为什么元素的宽度在页面加载之后和那一刻之后不同
- Javascript和Remotipart-为什么单引号和双引号很重要