javascript - 添加类时的 JQuery OnClick 问题

标签 javascript jquery html

基本上,当 <div> 时,我添加了一类“id”被点击。 ID 更新为“事件”

http://mpagallery.co.uk/exibitions/future/

如果单击小图像,则会显示 builder-gallery-item <div>需要添加id="active"到最后。

这是我在 fiddle 中尝试过的内容,并且在外部文件中具有完全相同的代码,但它不起作用。

jQuery(function ($) {
  $(document).ready(function ($) {
    $('.builder-gallery-item').on('click', changeClass);
  });
});

function changeClass() {
  $('.builder-gallery-item').removeAttr('id', 'active');
  $(this).attr('id', 'active');
}

最佳答案

我认为您正在寻找 addClassremoveClass方法

读完您的评论后,我强烈鼓励您使用类而不是 ID,因为 HTML Id elements should be unique

   $(document).ready(function () {
       $(".builder-gallery-item").on("click", function () {
          $('.builder-gallery-item').removeClass('active');
          $(this).addClass('active');
        });
    });

查看此JsFiddle

编辑为了清理评论,OP更新了JsFiddle ,其中 active 类仍未应用于包含图片的 div。

基于该 JsFiddle,您将在具有 builder-gallery-item 类的所有元素上调用 addClass('active'),而不仅仅是使用 builder-gallery-item 类的元素被点击。您应该使用:

jQuery(function ($) {
    $(".builder-gallery-image").on("click", function () {
        $('.builder-gallery-item').removeClass('active');
        $(this).closest('div').addClass('active');
    });
});

$(this) 实际上引用了图形对象,这就是我使用 $(this).closest('div') 代替的原因。请参阅Updated Fiddle

关于javascript - 添加类时的 JQuery OnClick 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25435108/

相关文章:

javascript - 为什么我得到的是 [object Object] 而不是 JSON?

javascript - Rails 3.1 escape_javascript 在 Rails 3.0 中无法正常工作

javascript - 如何将iframe中的字段值提取到主页中

javascript - 使用 D3 在鼠标位置单击时绘制圆圈

javascript - 如何将 IMEI 号码限制为仅 15 位数字且不计算 4 位数字后的空格

javascript - 刷新 uiwebview (iphone) 内 html 文件的内容

javascript - 如何使用 jquery.shapeshift 禁用拖放?

jquery - 如何从Grails中的AJAX错误回调中检索错误消息?

jquery - 如果另一个选择发生更改,则使用 Bootstrap Select 删除选定的属性

html - CSS 网格为每个 html 标签创建一个新框