1

我已经实现了一些可以让我的表格行成为链接的咖啡脚本。

然而,我遇到的问题是我的应用程序似乎添加http.com//到了我的工作 URL 的开头,所以www.google.com我不会得到www.http.com//www.google.com

我有当前的设置:

#Coffeescript

$ ->
  $('tr[href]').click -> window.open 'http://' + $(this).attr('href');


#View
    <% @jobs.each do |job| %>
        <tr href='<%= job.job_url %>'>
            <td><strong><%= job.title %></strong></td>
            <td><%= job.company %></td> 
            <td><%= job.city %>, <%= job.country %></td>
        </tr>
    <% end %>

存储在我的数据库中的 URL 都www.作为 URL 的一部分,但不是http://.

任何关于这里可能发生的事情的建议将不胜感激。谢谢

4

1 回答 1

3

job_url返回一个完整的 url,例如

http://www.example.com/jobs/1234

job_path返回相对路径,例如

'/jobs/1234'

如果您要使用job_url,则不应在您的咖啡脚本中附加协议,因为您的 URL 将被破坏,因为它们将附加协议两次。

作为最佳实践,您还可以考虑将其data-href用作<tr>. 我尝试这样做,它使 HTML 和 Javascript 之间的链接更加明确。我花了很多小时来追踪设计人员删除或重命名我的 Javascript 所依赖的类或属性元素的错误!

因此,在您的 ERB 中:

<tr data-href='<%= job.job_url %>'>

在咖啡脚本中:

$ ->
  $('tr[data-href]').click -> window.open 'http://' + $(this).attr('data-href');
于 2013-02-11T16:44:00.573 回答