2012-04-03 33 views
0

http://jsfiddle.net/nhZXg/36/禁用單選按鈕或分數增量第一次點擊後

當點擊了正確的答案,我 - 約翰:),將比分增量。問題在於,當你繼續點擊John時,分數會不斷增加。

我已經完成了我的研究並找到了.unbind()jquery代碼,但不知道如何實現它,或者甚至是最好的解決方案。

人們會提出什麼建議。

最好我想讓腳本找到被點擊的按鈕,而不是說按鈕(button1)被點擊了,例如,因爲這個測驗可能會相當大,這將是單調乏味的。

在此先感謝。

UPDATE: 現在使用此代碼: http://jsfiddle.net/nhZXg/38/

但它仍然將無法正常工作。

我使用這個頁面是: http://elearning.easy2dev.com/quiz_template_2.php

任何想法,爲什麼?我也包括jQuery 1.7.1庫!

完成! :)

+0

我看不出有任何的jQuery在你的榜樣。 – j08691 2012-04-03 15:35:35

+0

@ ShankarSangoli的回答非常好。我只想補充一點,您可能希望查看[jQuery-cookie](https://github.com/carhartl/jquery-cookie),因此即使用戶重新加載頁面,您也可以跟蹤哪些問題已得到解答。 – mekwall 2012-04-03 15:38:00

+0

謝謝大家。 @ j08691在那裏沒有jQuery,正確的,我說我不明白如何實現它。 @尚卡爾,我會看看,謝謝。 – 2012-04-03 15:39:54

回答

3

如果您只想執行任何事件處理程序一次然後使用jQuery one綁定事件處理程序。一旦事件被觸發,它將自動解除綁定。

$('input:radio').one('click', function(){ 
    //do stuff here 
}); 

您可以更改代碼中的邏輯並嘗試使用它,但這裏是您可以嘗試的代碼。

function scoreIncrement(elem) {//where elem is the radio button element that is clicked 
    if(!$(elem).data('scored')){ 
     score++; 
     document.getElementById("score").innerHTML = score; 
     $(elem).data('scored', true); 
    } 
}​ 

工作演示 - http://jsfiddle.net/nhZXg/38/

+0

我的分數增量現在停止工作,任何想法?我應該把我的代碼改成jsFiddle嗎? – 2012-04-03 15:41:46

+0

感謝您的編輯 - 現在看看:) – 2012-04-03 15:42:26

+0

不知道爲什麼我的工作不正常。我已經把所有的代碼都放在了正確的位置,即使顯示/隱藏現在也不起作用,但我發現它在jsFiddle中有效。難道它是我的jQuery包括,因爲我看不到什麼jsFiddle包括: 2012-04-03 16:03:28

相關問題