Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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 Jquery帮助:。单击()到每个单独的元素_Javascript_Jquery_Click_Each - Fatal编程技术网

Javascript Jquery帮助:。单击()到每个单独的元素

Javascript Jquery帮助:。单击()到每个单独的元素,javascript,jquery,click,each,Javascript,Jquery,Click,Each,我编写这段代码是为了在单击按钮(#share but)时将一个类(.box open,该类添加display:block)添加到我的框(.sharebox)中,但问题是每次单击按钮时,我都很难将其应用于一个.share div,所有的.shareboxs都将类.box open应用到它 function shareBox() { $('.share').each(function( index ) { $(this).on('click', '#share-but', function(

我编写这段代码是为了在单击按钮(
#share but
)时将一个类(
.box open
,该类添加display:block)添加到我的框(
.sharebox
)中,但问题是每次单击按钮时,我都很难将其应用于一个.share div,所有的
.sharebox
s都将类
.box open
应用到它

function shareBox() {
$('.share').each(function( index ) {
    $(this).on('click', '#share-but', function() {
        if ($('.sharebox').hasClass('box-open')) {
            $('.sharebox').removeClass('box-open');
        }        
        else {
            $('.sharebox').addClass('box-open');
        }
    });
});
}
shareBox();
下面是问题的图像(我正在构建一个Tumblr主题)。希望它更容易理解 您必须使用
$(this)
而不是
$('.sharebox')
来处理事件源

$('.sharebox').addClass('box-open');
会是

$(this).addClass('box-open');
元素的id在文档中应该是唯一的,因此您可以将单击直接绑定到“#共享”,但如果它不是唯一的,您可以这样绑定它

$('.share').on('click', '#share-but', function() {
    if ($('.sharebox').hasClass('box-open')) {
        $('.sharebox').removeClass('box-open');
    }        
    else {
        $('.sharebox').addClass('box-open');
    }
});
您可以使用
toggleClass
来简化,我假设您有一个id为#share的项目,但是

$('#share-but').click(function(){
   $(this).toggleClass("box-open");
});
您必须使用
$(this)
而不是
$('.sharebox')
来处理事件源

$('.sharebox').addClass('box-open');
会是

$(this).addClass('box-open');
元素的id在文档中应该是唯一的,因此您可以将单击直接绑定到“#共享”,但如果它不是唯一的,您可以这样绑定它

$('.share').on('click', '#share-but', function() {
    if ($('.sharebox').hasClass('box-open')) {
        $('.sharebox').removeClass('box-open');
    }        
    else {
        $('.sharebox').addClass('box-open');
    }
});
您可以使用
toggleClass
来简化,我假设您有一个id为#share的项目,但是

$('#share-but').click(function(){
   $(this).toggleClass("box-open");
});

这将是一个更简单的版本,您可以切换类名:)


这将是一个更简单的版本,您可以切换类名:)


第二个应该是
$(this.addClass('box-open')
谢谢@doniyor,你太好了。第二个应该是
$(this).addClass('box-open')谢谢@doniyor,你真好。