Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在单击时以及单击任何其他元素和空白时删除toggleClass?_Javascript_Jquery_Removeclass_Toggleclass - Fatal编程技术网

Javascript 如何在单击时以及单击任何其他元素和空白时删除toggleClass?

Javascript 如何在单击时以及单击任何其他元素和空白时删除toggleClass?,javascript,jquery,removeclass,toggleclass,Javascript,Jquery,Removeclass,Toggleclass,我使用JQuery toggleClass更改按钮单击时的颜色。再次单击鼠标时,应恢复为原始颜色;在其他任何位置(包括空白)单击鼠标时,应恢复为原始颜色 我不知道怎么做,但下面是我设法找到并插入的两个片段 单击按钮时,以下代码段将更改颜色,但再次单击时,它不会恢复为原始颜色,但单击任何其他元素或空白时,按钮颜色将恢复为原始颜色: (function () { $('.button_is').click(function(evt) { evt.stopPropagation(); //

我使用JQuery toggleClass更改按钮单击时的颜色。再次单击鼠标时,应恢复为原始颜色;在其他任何位置(包括空白)单击鼠标时,应恢复为原始颜色

我不知道怎么做,但下面是我设法找到并插入的两个片段

单击按钮时,以下代码段将更改颜色,但再次单击时,它不会恢复为原始颜色,但单击任何其他元素或空白时,按钮颜色将恢复为原始颜色:

  (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");
            });
        });
我可以利用这两个片段中的哪一个来确保单击按钮时颜色发生变化,再次单击按钮时颜色恢复为原始颜色,单击其他元素或空白时颜色恢复为原始颜色

试试这个-

    $(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
          }
        });
  });
试试这个-

    $(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
          }
        });
  });
小提琴:

小提琴:

你可以试试这个

$(document).ready(function () {

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

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

});
你可以试试这个

$(document).ready(function () {

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

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

});

你的第一个剪子对我很有用

也许你的HTML就是问题所在

值得注意的是,您的代码中有一个输入错误(您缺少ready处理程序上的
$

看看这个:
它可以在Chrome、Firefox和IE9上运行。

你的第一个剪贴对我来说很有用

也许你的HTML就是问题所在

值得注意的是,您的代码中有一个输入错误(您缺少ready处理程序上的
$

看看这个: 它可以在Chrome、Firefox和IE9上使用。

试试这个

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

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