我目前在Ruby on Rails应用程序中使用link_to_remote
来使用Prototype呈现远程内容。不幸的是,如果您多次单击创建的链接,它会重新呈现内容。
我想要做的是在第一次点击后禁用链接。
这是我目前使用的代码,
<%= link_to_remote (
"#{user.name}",
:update => "#{user.id}_div",
:url => { :controller => "wishlist_items", :action => "load", :id => user.id },
:position => "after",
:html => {:class => "#{user.id}_href"} )
%>
我知道您可以使用:success
和:complete
来调用JavaScript,但我不知道该怎么做。
非常感谢任何帮助。 谢谢。
答案 0 :(得分:1)
有几种不同的方法可以执行此操作,具体取决于您希望它的工作方式。如果您希望在单击后禁用该按钮,则可以使用PrototypeHelper文档中列出的其中一个回调:
可以指定的回调是(按顺序):
:loading:在浏览器加载数据远程文档时调用。
:loaded:在浏览器加载完远程文档后调用。
:interactive:当用户可以与远程文档交互时调用,即使它 尚未完成加载。
:success:在XMLHttpRequest完成时调用,HTTP状态代码在2XX范围内。
:失败:在XMLHttpRequest完成时调用,并且HTTP状态代码不在2XX范围内。
:complete:在XMLHttpRequest完成时调用(如果存在成功/失败则触发)。
基本上选择何时禁用它,并使用与此点匹配的回调将链接上的onclick属性设置为“return false;”或类似的东西。如果您不想再显示该元素,也可以删除该元素。
如果你想在第一个可能的点禁用链接,我会做的是为点击事件添加一个事件监听器,无论链接的ID是什么,然后再次设置onclick =“return false;”或者你可以删除/隐藏等。