2013-07-29 128 views
0

我有两个按键为隐藏设置:jQuery的点击隐藏和显示其他按钮

<input type="button" id="a" style="display:none;" value="A" /> 
<input type="button" id="b" style="display:none;" value="B" /> 

我有一个jquery,我检查从数据库中获取一定的条件。任何一个按钮都会显示出来,这取决于条件是1还是0 ..这意味着当我点击任何一个按钮时,它必须隐藏起来,另一个必须显示出来。但它不是happening..The按钮我点击获取隐藏和其他按钮不会显示up..If任何人都可以帮助..我的jQuery:

$(document).ready(function() { 
     var condition = "<?php echo $condition; ?>"; //i get this from database 
     var c = condition; 


     if(c == 0){ 

       $('#a').css({'display':''}); 
      $('#a').click(function(){ 
      $('#a').hide(); 
      $('#b').show(); 

        }); 
     }else if(c == 1){ 

       $('#b').css({'display':''}); 
      $('#b').click(function(){ 
      $('#b').hide(); 
      $('#a').show(); 
     } 
     }); 
+0

尝试在JS中记录或警告条件变量..它的价值是什么? –

+0

你可能想看看jquery [.toggle](http://api.jquery.com/toggle/)功能 – Sharlike

+0

@VedantTerkar它的价值没有得到更新的按钮点击警报,但得到更新数据库.. – user2605321

回答

2

您需要将您的.click(function(){})移动到if/else块之外,因为condition/c永不改变,所以只有第一个.click(function(){})有效。另一个永远不会被调用。这样,您的隐藏/显示就不受condition/c值的影响。

$(document).ready(function() { 
    var condition = <?php echo $condition; ?>; //i get this from database 
    var c = condition; 


    if(c == 0){ 

      $('#a').css({'display':''}); 
    }else if(c == 1){ 

      $('#b').css({'display':''}); 
    } 

     $('#a').click(function(){ 
       $('#a').hide(); 
       $('#b').show(); 
     }); 
     $('#b').click(function(){ 
       $('#b').hide(); 
       $('#a').show(); 
     }); 
    }); 

看到这样的jsfiddle例子 - http://jsfiddle.net/bWJ5A/1/

+0

这将是一些帮助..!谢谢.. :) – user2605321

+0

总是很乐意提供帮助。 – Sean

1
var condition = "<?php echo $condition; ?>"; 

这应该进行修改,以

var condition = <?php echo $condition; ?>; 

你得到一个字符串,但你与数字进行比较。

+1

它看起来像'1 =='1''与'1 == 1'(http://stackoverflow.com/a/359547/689579)相同,所以任何一个在使用整数时都是有效的。 – Sean

0

这样的代码,在butB点击;你还没有关闭“});”

<html> 
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script> 
<script> 
$(document).ready(function() { 
var condition = 0; //i get this from database 
    var c = condition; 
    if(c == 0){ 
     $('#a').css({'display':''}); 
     $('#a').click(function(){ 
      $('#a').hide(); 
      $('#b').show(); 
     }); 
    }else if(c == 1){ 
     $('#b').css({'display':''}); 
     $('#b').click(function(){ 
      $('#b').hide(); 
      $('#a').show(); 
     }); 
    } 
    }); 
</script> 
<body> 
<input type="button" id="a" style="display:none;" value="A" /> 
<input type="button" id="b" style="display:none;" value="B" /> 
</body> 
</html>