jQuery如果 - 其他工作50%

时间:2017-03-31 21:22:37

标签: javascript jquery reactjs

下面的代码位于document.ready函数中。 if-else语句的工作方式只有一半......第一部分(如果)工作正常,我在powerClicked之后发出警报,告诉我它是否将powerClicked设置为1,它就是。其他如果绝对没有...任何人看到我的错误?我不知道是否有什么东西可能会破坏jQuery,整个HTML都是通过ReactJS VDOM呈现的。



var powerClicked = 0;
    
    if(powerClicked == 0) {
        $('#Power').click(function() {
            powerClicked = 1;
           $('#Power').animate({
              backgroundColor: 'rgba(255,0,0,1)' 
           }, 1500);
            //fading in text
        $('#boxText').delay(2000).fadeIn(500).text('Listening');
        
        });
        
    } else if(powerClicked == 1) {
        $('#Power').click(function() {
            
           $('#Power').animate({
              backgroundColor: 'rgba(255,255,255,1)' 
           }, 1500); 
           //fading out text
            $('boxText').fadeOut(500);
            powerClicked = 0;
        });   
    }




2 个答案:

答案 0 :(得分:2)

当代码运行时,if语句会运行并创建处理$('#Power')元素点击的函数。

每当单击$('#Power')元素时,将触发其中定义的函数。 if-else永远不会再执行。您需要在单击处理程序中移动if-else逻辑。这样的事情应该有效:

    var powerClicked = false;
    $('#Power').click(function() {
       powerClicked = !powerClicked;

       if (powerClicked) {
         $('#Power').animate({
            backgroundColor: 'rgba(255,0,0,1)' 
         }, 1500);
       } else {
         $('#Power').animate({
            backgroundColor: 'rgba(255,255,255,1)' 
         }, 1500); 

       }

       //fading in text
       $('#boxText').delay(2000).fadeIn(500).text('Listening');        
    });

答案 1 :(得分:0)

$('boxText')您需要将其更改为$('#boxText'),以便正确抓取元素节点(假设它具有 id 的“boxText”