jQuery:在通过.wrap()添加到DOM的jQuery元素上切换类?

时间:2012-06-11 12:49:20

标签: javascript jquery dom-manipulation

我在操作元素的类属性时遇到问题,因为我已经使用.wrap()将它添加到DOM中。它根本不会改变属性,即使一切看起来都是有序的。

如果我使用除.wrap()或.wrapInner()之外的其他内容,一切都按预期工作。如果我将.toggleClass()更改为if / else,如果仍然无法工作。

当然可以解决这个问题,但我宁愿找到问题的根源并沿途学习。

以下是相关代码:

$('.tour-category').each(function () {
    var tour_list = $(this);
    var header = tour_list.parent().find('h4');
    var link = $('<a>', {
        href: '#',
        'class': 'tour-category-toggler',
        click: function (e) {
            e.preventDefault();

            tour_list.slideToggle(200);
            link.toggleClass('close');
        }
    });

    tour_list.hide();
    header.wrap(link);
});

也许我缺少一些东西,或者这可能是jQuery中的一个错误?

1 个答案:

答案 0 :(得分:0)

尝试改变

link.toggleClass('close');

$(this).toggleClass('close');