0

今天早上我似乎遇到了一些麻烦removeClass。首先我单击 adiv添加 Class 'containerhover',然后当我单击关闭按钮时,它不会删除它刚刚添加到div.

我不知道这是否与仅将其添加到 dom 而没有实际编码到 HTML 中有关。请有人帮忙。

HTML

<div class="container"></div>

jQuery

$(function() {

    $('.container').click(function(e) {
        var mythis = $(this);
        mythis.addClass("containerhover");
        mythis.find('.backface').addClass("bfhover");
        mythis.find('.album').addClass("ahover");
    });

    $('.closealbum').click(function(e) {
        $('.container').removeClass('containerhover');
    });
});
4

1 回答 1

7

使用.on(), 将事件附加到容器,并.closealbum单击元素时激活它。另外,添加event.stopPropagation()防止事件进一步冒泡的方法:

$('.container').on('click', '.closealbum', function(e) {
    $('.container').removeClass('containerhover');
    e.stopPropagation();
});
  1. 您的问题是由于绑定事件.closealbum时元素不存在造成的。click
  2. 您的元素位于另一个元素内。没有e.stopPropagation(),事件会冒泡,第一个事件也将被触发,撤消第二个事件的 removeClass。

演示:http: //jsfiddle.net/knCR8/1/

于 2012-01-14T15:02:35.077 回答