2

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

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

这就是我现在所拥有的:

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

我希望我的用户能够单击页面上的任意位置并删除“变暗”类。

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

if ($('body').hasClass('darken')) {
        $('body').click(function () {
        $(this).toggleClass("darken");
    });
    }

非常感谢,克莱门特。

4

3 回答 3

2

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

var $body = $("body"), $img = $("img");

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

$(document).click(function(){
  $body.removeClass("darken");
});
于 2013-02-07T12:00:05.140 回答
0

这是我使用的解决方案:

$(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' );
});
于 2014-10-28T14:31:28.417 回答
-1

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

$('body.darker').live('click', function() { $(this).removeClass('darker'); } )
于 2013-02-07T11:59:35.490 回答