0

.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のバグですか?

4

1 に答える 1

0

変えようとする

link.toggleClass('close');

の中へ

$(this).toggleClass('close');
于 2012-06-11T12:50:47.737 に答える