如何在特定 ID 上触发 onclick CSS

How do I trigger an onclick CSS on a particular ID

我正在尝试触发特定 ID 上的特定 CSS,但它只影响该 ID 的一个图像,而不是具有该 ID 的所有图像。 另外,如果我再次单击同一个触发器,如何回滚更改?

这是我正在使用的HTML。

<div class="row">
    <div class="container">
        <div class="col-sm-3">
            <img src="https://imagesonline.bl.uk/coo/user/gpimages/Images_Online_Cooliris_Logo.jpg" class="img-responsive" id="some" alt="">
        </div>
        <div class="col-sm-3">
            <img src="http://www.niemanlab.org/images/getty-images-logo.png" class="img-responsive" id="some" alt="">
        </div>
        <div class="col-sm-3">
            <img src="http://cdn.eso.org/images/thumb300y/eso1119b.jpg" class="img-responsive" id="some" alt="">
        </div>
        <div class="col-sm-3">
            <img src="http://www.niehs.nih.gov/news/newsroom/releases/2013/august19/tbbpa_image_.jpg" class="img-responsive" id="some" alt="">
        </div>
        <div class="col-sm-3">
            <img src="http://learningdesign.psu.edu/themes/site_themes/agile_records/images/uploads/LDImages/itsupport2.jpg" class="img-responsive" id="some" alt="">
        </div>
        <div class="col-sm-3">
            <img src="http://dummyimage.com/300" class="img-responsive" id="some" alt="">
        </div>
        <div class="col-sm-12 tac">
            <br><br><br><button>test</button>
        </div>
    </div>
</div>
你好世界!

这是我正在使用的 javascript。

<script>
$('#image').click(function() {
    $('#some').css({
        'background-color': 'black',
        'color': 'white',
        'font-size': '44px',
        'opacity': '0.1'
    });
});
</script>

试试这个:

$('#image').click(function() {
   $('.img-responsive').css({
   'background-color': 'black',
   'color': 'white',
   'font-size': '44px',
   'opacity': '0.1'
  });
}); 

回滚只需使用此代码:

$(".img-responsive").removeAttr("style");

问题是您需要使用 UNIQUE ids。而是使用 class :

$('.img-responsive').css({
    'background-color': 'black',
    'color': 'white',
    'font-size': '44px',
    'opacity': '0.1'
});

此外,切勿使用重复的 ids,ID 在整个文档中应唯一

如果您想回滚更改,请改用 类。还有其他方法,但我觉得这个是最好的。

CSS:

.class1{
    background-color: black;
    color: white;
    font-size: 44px;
    opacity: 0.1;
  }

Jquery:

$('.img-responsive').toggleClass('class1');

要回滚到以前的状态,请尝试使用 jquery 的切换方法

http://api.jquery.com/toggle/

您可以在切换方法中将两个函数作为参数传递,jquery 将一次调用一个方法。

jQuery click / toggle between two functions

查看 link 以获得更多帮助和示例。

对于多个元素,您应该使用 class 而不是 id。对于 roleback 你可以使用 Toggle Class | jQuery UI 尝试如下:

<style>
    .active{
        background-color: black;
        color: white;
        font-size: 44px;
        opacity: 0.1;
    }
</style>

JS

$('#image').click(function() {
    $('.img-responsive').toggleClass('active');
});   

注意:单个页面中的多个元素不能相同id否则总是考虑第一个。