在Rails项目中,我需要保持link_to_remote不被双击。它看起来像:before和:after是我唯一的选择 - 它们分别在onclick Ajax调用中得到前置/附加。但是,如果我尝试类似的东西:
:before => "self.stopObserving()"
Ajax永远不会运行。如果我尝试它:在运行Ajax之后但链接永远不会停止观察。
我看到的解决方案依赖于创建变量并阻止整个表单,但此页面上有多个link_to_remote行,一次点击多个行是有效的 - 只是两次不同。在link_to_remote之外声明的每行一个变量似乎非常笨拙......
而不是使用Prototype我最初尝试使用普通的Javascript作为这个概念证明 - 但它也失败了:
< a href =“#”onclick =“self.onclick = function(){alert('foo');};”> click< / a>
点击时会发出警报 - 这里的lambda什么都不做?下一个更像是期望的目标,应该只在第一次提醒。但它每次都会发出警报:
< a href =“#”onclick =“alert('bar'); self.onclick = function(){return false;};”> click< / a>
所有想法都赞赏!
答案 0 :(得分:0)
我使用jQuery工作:
link.click(function() {
alert('foo');
$(this).unbind('click');
$(this).click(function() {
return false;
});
return false;
})
所以你肯定可以用普通的旧javascript来完成同样的工作。
使用jQuery执行此操作的好处是,可以很容易地将类添加到您希望以这种方式运行的所有链接,并且在您的应用程序中。您可以将此行为分配给该类的所有链接。
当然,您也可以使用普通的JavaScript来完成所有这些... jQuery只是让它变得更容易。