我有一个我正在循环的品牌索引,每个链接调用一个方法将其添加到表中并使用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&user_id=2" data-remote="true" onclick="$(this).css('font-weight','bold'); $(this).attr('href', 'http://www.google.com/');">BrandName</a>
答案 0 :(得分:0)
2件事
我不会更改ORIGINAL链接,我会隐藏链接以执行X并显示执行Y的链接,这将不那么突兀和更好的操作切换。
我不会使用“click”来做你正在做的事情,我会点击一个自定义事件,注册到该事件然后做其他事情。 http://jsfiddle.net/fr7xK/
我很确定这种方式可以解决您的问题,因为您正在执行异步,首先是第一个事件('click')将触发,然后触发另一个事件,您在
上注册