0

在Rails项目中,我需要保持link_to_remote不会被双击。它看起来像:before和after之后是我唯一的选择 - 它们分别被预加/附加到onclick Ajax调用。但是,如果我尝试类似:防止Rails link_to_remote多次提交w Javascript

:before => "self.stopObserving()" 

Ajax从不运行。如果我尝试它:运行Ajax之后,链接从不停止观察。

我看到的解决方案依赖于创建变量并阻止整个表单,但此页面上有多个link_to_remote行,并且一次只能单击一个以上的行是有效的 - 只是不一样两次。每行一个变量外的link_to_remote似乎很kludgey宣布...

而不是使用原型本来我试过普通的JavaScript首先这个概念证明的 - 但它也失败:

< A HREF =” #”的onclick = “self.onclick =函数(){警报( '富');};”>点击</A>

点击时只是把一个警报 - 拉姆达这里什么都不做?这下一个更像是期望的目标,应该只是第一次提醒。但相反,它提醒每一次:

< A HREF = “#” 的onclick = “警报( '巴'); self.onclick =函数(){返回false;};”>点击</A>

所有想法都赞赏!

+3

什么是“自我”?它不应该是“这个”吗? – Shurdoof 2010-12-23 05:33:13

回答

0

我得到这个使用jQuery的工作:

link.click(function() { 
    alert('foo'); 
    $(this).unbind('click'); 
    $(this).click(function() { 
    return false; 
    }); 
    return false; 
}) 

所以你一定可以做到与普通的旧JavaScript中的相同。

使用jQuery做这件事的好处是,可以很容易地向所有想要以这种方式行事的链接添加一个类,并且在您的application.js中,您可以将此行为分配给该类的所有链接。

当然,你也可以用普通的旧JavaScript来做所有的事...... jQuery只是让它变得更简单。

+0

无法将其转换为内联呼叫。事实上,FF3.6中的Firebug声称没有$(this).unbind与jQuery 1.3,尽管“unbind:function”出现在文件中。 StackOverflow click Chris 2010-12-24 14:26:58