首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果为hasClass,则单击removeClass

如果为hasClass,则单击removeClass
EN

Stack Overflow用户
提问于 2013-02-07 19:55:46
回答 3查看 4.1K关注 0票数 2

我有一个图片库。当我点击它时,图像很突出,因为身体背景从白色变成了黑色。

当我再次单击图像时,它会恢复正常。

这就是我现在所拥有的:

代码语言:javascript
运行
复制
$('img').click(function () {
  $('body').toggleClass("darken");
});

我希望我的用户能够点击页面上的任何地方,并删除类"darken“。

我尝试了hasClass语句,但没有成功。

代码语言:javascript
运行
复制
if ($('body').hasClass('darken')) {
        $('body').click(function () {
        $(this).toggleClass("darken");
    });
    }

非常感谢,Clément。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-07 20:00:05

您可以将click事件处理程序绑定到<body>。但是,一定要停止在img上传播单击事件。

代码语言:javascript
运行
复制
var $body = $("body"), $img = $("img");

$img.click(function(evt) {
  $body.toggleClass("darken");
  evt.stopPropagation();
});

$(document).click(function(){
  $body.removeClass("darken");
});
票数 2
EN

Stack Overflow用户

发布于 2014-10-28 22:31:28

这是我使用的解决方案:

代码语言:javascript
运行
复制
$(document).on('click', function(e) {
    var $body = $( 'body' ); 
    if(e.target.id && e.target.id === 'menu-btn') $body.toggleClass( 'navigation-opened' );
    else if(e.target.tagName.toLowerCase() !== 'nav') $body.removeClass( 'navigation-opened' );
});
票数 0
EN

Stack Overflow用户

发布于 2013-02-07 19:59:35

这可能会更简单,但也会做同样的事情:

代码语言:javascript
运行
复制
$('body.darker').live('click', function() { $(this).removeClass('darker'); } )
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14750544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档