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