2013-04-16 38 views
0

我正在使用JQuery toggleClass在单击按钮时更改按钮的颜色。当它再次被点击时,它应该恢复到原来的颜色,并且当在包括空格在内的其他地方点击鼠标时,它应该恢复到原来的颜色。如何在单击时删除toggleClass,以及何时单击任何其他元素和空格?

我无法弄清楚如何做到这一点,但下面是我设法找到并插上东西2段。

下面的代码片段被点击按钮,但再次点击时,它不会改变颜色“T恢复到原来的颜色,但点击任何其他元素或空格时,按钮颜色恢复到原来的颜色:

(function() { 
$('.button_is').click(function(evt) { 
    evt.stopPropagation(); //stops the document click action 
    $(this).siblings().removeClass('button_addition'); 
    $(this).toggleClass('button_addition'); 
}); 


$(document).click(function() { 
    $('.button_is').removeClass('button_addition'); //make all inactive 
}); 
}); 

被点击的元素时,下面的代码片段将切换类,当它再次点击它恢复到它的原始状态,但不会恢复到原来的颜色,如果点击其他地方:

$(document).ready(function() { 

      $(".button_is").click(function() { 
       $(this).toggleClass("button_addition"); 
      }); 
     }); 

,我可以利用,以确保该按钮被点击的颜色变化,并单击时,当它再次恢复到原来的颜色,当点击其他元素或空格其恢复为这两个代码段原来的颜色?

回答

1

试试这个

$(function() { 
     $('.button_is').on('click', 
     function(event) { 
      event.stopPropagation(); 
      $('.button_is').toggleClass('button_addition'); 
     }); 
     $('html').click(function() { 
      $('.button_is').removeClass('button_addition'); 
     }); 
    }); 
1

试试这个 -

$(document).ready(function() { 
     $(".button_is").click(function() { 
      $(this).toggleClass("button_addition"); 
     }); 

     $(document).click(function(event) { 
      if(!$(event.target).is('.button_is')){ 
      $('.button_is').removeClass('button_addition'); //make all inactive 
      } 
     }); 
    }); 
1

小提琴:http://jsfiddle.net/9ZKfq/

$(document).ready(function() { 

    $(document).click(function(jEvent) {  

     if (!$(jEvent.target).hasClass('button_is')) 
     { 
      $('.button_is').removeClass('button_addition'); 
     } 
     else 
     { 
      $(jEvent.target).toggleClass('button_addition'); 
     } 

    }); 

}); 
2

你可以试试这个

$(document).ready(function() { 

    $(".button_is").click(function (e) { 
     e.stopPropagation(); 
     $(this).toggleClass("button_addition"); 
    }); 

    $(document).click(function() { 
     $(".button_is.button_addition").trigger("click"); 
    });  

}); 

DEMO.

1

你的第一个剪辑适用于我。

也许你的HTML是问题?

值得注意的是,您的代码中存在拼写错误(您在就绪处理程序中缺少$)。

看这个:http://jsfiddle.net/URrVf/ 它适用于Chrome,Firefox和IE9。

相关问题