2012-04-03 5 views
0

http://jsfiddle.net/nhZXg/36/正解がクリックされたときに最初に、私を

をクリックした後、ラジオボタンやスコアの増分を無効にする - ジョン:)、スコア増分を。問題は、あなたがジョンをクリックし続けるとスコアが増加し続けるということです。

私は自分の研究を行い、.unbind()jqueryコードを見つけましたが、それを実装する方法がわからない場合や、それが最善の解決策であったとしても、

人々は何を提案しますか?

このクイズは非常に大きくなり退屈なものになる可能性があるので、スクリプトをクリックするとif(button1)をクリックするのではなく、クリックされたボタンが見つかるようにしたいと考えています。

ありがとうございます。

UPDATE: 今、このコードを使用する: http://jsfiddle.net/nhZXg/38/

しかし、それはまだ機能しません。私はこれを使用しています

ページは次のとおりです。 http://elearning.easy2dev.com/quiz_template_2.php

任意のアイデアなぜですか?私はjQuery 1.7.1ライブラリも含めました!

完了! :)

+0

を私はあなたの例では何のjQueryのを見ていません。 – j08691

+0

@ ShankarSangoliの答えは素晴らしいです。私はあなたが[jQuery-cookie](https://github.com/carhartl/jquery-cookie)をチェックしたいと思うかもしれないと付け加えたいと思います。ユーザーがページをリロードしてもどの質問に答えられたのかを追跡できます。 – mekwall

+0

ありがとうございます。 @ j08691そこにjqueryがない、正しい、私はそれを実装する方法を理解していないと言った。 @シャンカール、私は見て、感謝します。 –

答えて

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に入れてもいいですか? –

+0

編集してくれてありがとうございます - 今見てみましょう:) –

+0

私の趣味がうまくいかない理由はわかりません。私はすべてのコードを正確に入れました。たとえshow/hideが動作しなくても、jsFiddleで動作します。 jsFiddleが何を含んでいるのかわからないので、私のjqueryインクルードにすることができますか?

関連する問題