2010-06-15 11 views
6

में एक साधारण टॉगल बटन बनाने की कोशिश कर रहा हूं, मैं जावास्क्रिप्ट में एक साधारण टॉगल बटन बनाने की कोशिश कर रहा हूं। हालांकि, बटन केवल "बंद" हो जाएगा और वापस चालू नहीं होगा "ऑन"मैं जावास्क्रिप्ट

<html><head></head> 
<script type="text/javascript"> 
function toggle(button) 
{ 
    if(document.getElementById("1").value=="OFF"){ 
    document.getElementById("1").value="ON";} 

    if(document.getElementById("1").value=="ON"){ 
    document.getElementById("1").value="OFF";} 
} 
</script> 
<body> 
<form action=""> 
<input type="button" id="1" value="ON" style="color:blue" 
     onclick="toggle(this);"> 
</form></body></html> 

मैं चला रहा हूँ: हिमाचल प्रदेश नेटबुक: उबंटू 1.0 के लिए Firefox: उबंटू लिनक्स 10.04।

उत्तर

10
अपने if बयान के

दोनों एक दूसरे के बाद एक को मार डाला जा रहा है, तो आप मूल्य को तत्काल बदलने के रूप में और उसे फिर से पढ़ सकते हैं और इसे वापस बदलने:

function toggle(button) 
{ 
    if(document.getElementById("1").value=="OFF"){ 
    document.getElementById("1").value="ON";} 

    else if(document.getElementById("1").value=="ON"){ 
    document.getElementById("1").value="OFF";} 
} 

जोड़ने में else वहाँ हो रहा बंद कर देना चाहिए।

+3

इसके अलावा, यदि आप जानते हैं कि मान केवल "चालू" या "बंद" हो सकता है, आप दूसरे 'if' को पूरी तरह से छोड़ सकते हैं और बस' else' का उपयोग कर सकते हैं। –

13

यदि आप इसे देखने जा रहे हैं तो आप बटन क्यों गुजर रहे हैं?

इसके अलावा, चूंकि आप संभावित मूल्यों को जानते हैं, इसलिए आपको केवल यह जांचना होगा कि यह बंद है या नहीं, अन्यथा, आप जानते हैं कि यह चालू है।

// Toggles the passed button from OFF to ON and vice-versa. 
function toggle(button) { 
    if (button.value == "OFF") { 
    button.value = "ON"; 
    } else { 
    button.value = "OFF"; 
    } 
} 

आप कल्पना हो और बचाने के बाइट्स की एक जोड़ी आप त्रिगुट ऑपरेटर का उपयोग कर सकते हैं करना चाहते हैं, तो:

function toggle(b){b.value=(b.value=="ON")?"OFF":"ON";} 
+1

http://www.jsfiddle.net/EfjUB/1/ – gnarf

+1

पर प्रदर्शित, नीट, पहले कभी jsfiddle का सिर नहीं, धन्यवाद! –

1

क्यों एक स्विच का उपयोग नहीं?

function toggle(button) 
{ 
    switch(button.value) 
    { 
      case "ON": 
       button.value = "OFF"; 
       break; 
      case "OFF": 
       button.value = "ON"; 
       break; 
    } 
} 
+0

'.value' नहीं '। वैल्यू – gnarf

+2

एक बूलियन मान के लिए एक स्विच ओवरकिल की तरह है। –

0

एक अन्य विधि यह करने के लिए है:

var button = document.querySelector("button"); 
var body = document.querySelector("body"); 
var isOrange = true; 

button.addEventListener("click", function() { 
if(isOrange) { 
    body.style.background = "orange"; 
}else { 
    body.style.background = "none"; 
} 
isOrange = !isOrange; 
}); 

JavaScript फ़ाइल में।

/*****

नोट! एक और तरीका उस तत्व को कक्षा लागू कर रहा है जिसे हम बदलना चाहते हैं।

CSS फ़ाइल स्वरूप के साथ वर्ग होना आवश्यक है हम चाहते हैं:

var button = document.querySelector("button"); 
button.addEventListener("click", function() { 
    document.body.classList.toggle("orange"); 
}); 

सादर:

.orange { 
background: orange; 
} 
हमारे js फ़ाइल में

पिछले करके हम केवल वर्ग के आवेदन करने की जरूरत है :)

0
<html> 
    <head> 
     <script type="text/javascript"> 
      function toggle(button) 
      { 
       if(document.getElementById("1").value=="OFF") 
       { 
       document.getElementById("1").value="ON"; 
       } 
       else 
       { 
       document.getElementById("1").value="OFF"; 
       } 
      } 
     </script> 
    </head> 
    <body> 
     <form action=""> 
      <input type="button" id="1" value="ON" style="color:blue" onclick="toggle(this);"> 
     </form> 
    </body> 
</html> 
+0

हमेशा स्क्रिप्ट को हेड टैग में रखें क्योंकि आपका पृष्ठ लोड होने पर आपकी स्क्रिप्ट पहले लोड हो जाती है –

संबंधित मुद्दे