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