使用Rails和Jquery更改href属性会停止功能

时间:2012-02-13 12:56:59

标签: jquery ruby-on-rails ruby-on-rails-3

我有一个我正在循环的品牌索引,每个链接调用一个方法将其添加到表中并使用jquery使文本变为粗体。

<%= link_to brand.name, { :controller => 'user_favorites', :action => 'create_brand', :brand_id => brand.id, :user_id => current_user.id }, :onclick => "$(this).css('font-weight','bold');", :remote => true %>

这很好,但是,当点击链接时,我需要它更改为删除链接href,它指向一个不同的方法,从表中删除它。目前,我只是想让href改为“http://www.google.com”。我用过这段代码......

<%= link_to brand.name, { :controller => 'user_favorites', :action => 'create_brand', :brand_id => brand.id, :user_id => current_user.id }, :onclick => "$(this).css('font-weight','bold'); $(this).attr('href', 'http://www.google.com/');", :remote => true %>

不幸的是,当我添加$(this).attr('href', 'http://www.google.com/');时,href确实成功更改,但未调用控制器操作,并且品牌未添加到我的表中。似乎我可以执行控制器操作或更改href,但不能同时执行两者。非常感谢任何帮助,谢谢!

更新:

根据要求,为其中一个链接呈现了html ......

<a href="/user_favorites/create_brand?brand_id=1272&amp;user_id=2" data-remote="true" onclick="$(this).css('font-weight','bold'); $(this).attr('href', 'http://www.google.com/');">BrandName</a>

1 个答案:

答案 0 :(得分:0)

2件事

  1. 我不会更改ORIGINAL链接,我会隐藏链接以执行X并显示执行Y的链接,这将不那么突兀和更好的操作切换。

  2. 我不会使用“click”来做你正在做的事情,我会点击一个自定义事件,注册到该事件然后做其他事情。 http://jsfiddle.net/fr7xK/

  3. 我很确定这种方式可以解决您的问题,因为您正在执行异步,首先是第一个事件('click')将触发,然后触发另一个事件,您在

    上注册