سؤال

أقوم بعمل نص JQuery بسيط يسمح لك بتغيير شيء ما بنقرة زر. مشكلتي هي أنه إذا قمت بتغيير القيمة (التي تم فحصها) ، ثم انقر فوق الزر "إرسال" ، فسوف يتعرف عليها على أنها الافتراضي. إذا قمت بذلك على الافتراضي ، فسيتم تعيينه على إيقاف تشغيله ، لذلك إذا قمت بالتحقق من ذلك (تشغيل) ثم انقر فوق الزر "إرسال" ، فسيكون الأمر الافتراضي (OFF). أعرف ذلك لأنني أستخدم التخزين المحلي لحفظ الإعدادات. لذلك إذا قمت بفحصها ، وتحديثها ، ثم انقر فوق إرسال ، فسيقوم بإجراء الإجراء المناسب.

ها هي 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/

بشكل افتراضي ، سوف يتلاشى النص ، إذا قمت بفحصه ، فيجب أن يحول خلفية النص إلى اللون الأزرق. هذا لا يعمل بشكل صحيح ، لذا فإنه سيتلاشى فقط ، ولكن إذا قمت بفحصه ، ثم تحديث ثم إرساله سيحول الخلفية إلى اللون الأزرق.

هل كانت مفيدة؟

المحلول

سأتغير

var test = 'true';

ل

test = 'true';

في منطقة حدث مربع الاختيار. لا يمكن الوصول إلى المتغير خارج وظيفة حدث النقر.

تحرير: نفس الشيء ينطبق على عدم التقييد. قم بإزالة "var"

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top