簡體   English   中英

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 %>

版本1成功更改了#container的標記,版本2失敗,沒有服務器或客戶端錯誤。 我以為單引號和雙引號只是在使用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>");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM