我有一個逐步向導類型的流程,在每一步之後,用戶爲該步驟輸入的信息摺疊成簡要的摘要視圖,並在其旁邊出現「返回」鏈接,允許用戶如果決定要改變某些內容,就跳回到流程中的那一步。jQuery:無法緩存onclick處理程序?
問題是,我不希望「向後」鏈接在嚮導製作動畫時可點擊。爲了實現這一點,我使用了一個我以前曾經使用過的技巧;當我希望將其禁用時,將onclick
處理程序緩存到其他屬性,然後在我希望它再次變爲可點擊時將其恢復。這是我第一次嘗試用jQuery來做這件事,並且出於某種原因,它不起作用。我的禁用代碼:
jQuery.each($("a.goBackLink"), function() {
this._oldOnclick = this.onclick;
this.onclick = function() {alert("disabled!!!");};
$(this).css("color", "lightGray ! important");
});
...我能代碼是:
jQuery.each($("a.goBackLink"), function() {
this.onclick = this._oldOnclick;
$(this).css("color", "#0000CC ! important");
});
我不知道爲什麼它不工作(這些都是很好的,老式的onclick處理使用定義相應鏈接標籤上的onclick
屬性)。禁用鏈接後,我總是得到「禁用!!!」即使在我運行應該重新啓用它們的代碼之後,單擊它們時的消息。有任何想法嗎?
此代碼的另一個小問題是css()
調用來更改鏈接顏色也似乎不起作用。
你的啓用/禁用功能工作爲了我。看起來你在調用啓用代碼時做錯了,這就是爲什麼你也不知道顏色的原因。 –
你使用JSF嗎?如果是這樣,嘗試用jQuery替換$,除此之外,我在控制檯上嘗試了你的代碼,它確實工作。也許還有一些其他部分存在干擾? – SelimOber
@Yiğ[email protected] - 你是對的,代碼做的是正確的,但它被錯誤的使用了。基本上有一些情況會導致'disable'代碼在一行中被調用兩次,從而使佔位符處理器緩存onclick處理程序。補丁,一切正常(除了CSS顏色,它仍然被忽略)。 – aroth