1

ボタンをクリックするだけで何かを変更できる簡単な jQuery スクリプトを作成しています。私の問題は、値を変更して(チェックを入れて)送信ボタンをクリックすると、それがデフォルトとして認識されることです。デフォルトでこれを行うとオフに設定されているので、チェックを外して(オンにして)送信ボタンをクリックすると、デフォルト(オフ)のコマンドになります。これは、ローカル ストレージを使用して設定を保存しているためです。したがって、チェックを外して更新し、送信をクリックすると、適切なアクションが実行されます。

これが私のjQueryです:

$(document).ready(function(){ 
var test='false'

if (localStorage.getItem('simpSet')){
element = document.getElementById('simplify');
var test=localStorage.getItem('simpSet');

if(test == 'true'){
element.setAttribute('checked');
}

console.log(test);
}

$('#simplify').live('click', function(){

if ($('#simplify').is(':checked')){
var test='true'
console.log(test);

}else{
var test='false'
console.log(test);
}
localStorage.setItem('simpSet', test);

});

$('#button').live('click', function(){
console.log(test);

if(test == 'true'){
console.log('isTrue');
$('#test').css('background', 'blue');
return false;
}else{
$('#test').fadeOut('slow');
return false;
}

});

});

そして私の単純なマークアップ

<span id='simcont'>Simplify<input type='checkbox' id='simplify'></span>

<input type="submit" val='Go' id='button'>
<div id='test'>Testing simplifier</div>

何が問題なのですか?

例: http://kod.singaming.net/simplify/

デフォルトでは、テキストはフェードアウトします。チェックすると、テキストの背景が青色になります。ただし、これは正しく機能しないため、フェードアウトしますが、チェックを外して更新してから送信すると、背景が青色になります。

4

1 に答える 1

1

私なら、変えるね

var test = 'true';

test = 'true';

あなたのチェックボックスイベントエリアで。この変数は、クリック イベント関数の外ではアクセスできません。

編集:チェックを外す場合も同じです。「var」を削除します

于 2010-08-10T00:26:53.923 に答える