我想提出以下建议: 在树上点击我的下一个ul应该切换(工作) 此后(!)该类应该从treeExpanded更改为treeCollapsed,但我不明白...
...
<li>
<a class="treeExpanded">Toggle</a>
<span>xyz</span>
<ul class="steps">
...
</ul>
</li>
...
有效,但课程立即更改:
$j('.treeExpanded').click (function () {
$j(this).toggleClass('treeCollapsed','treeExpanded').nextAll('ul').slideToggle("slow");
});
也有效,但课程立即改变:
$j('.treeExpanded').click (function () {
$j(this).nextAll('ul').slideToggle("slow");
$j(this).toggleClass('treeCollapsed','treeExpanded');
});
不起作用:
$j('.treeExpanded').click (function () {
$j(this).nextAll('ul').slideToggle("slow", function () {
$j(this).parents('a:first').toggleClass('treeCollapsed','treeExpanded');
});
});
答案 0 :(得分:1)
您可以将元素保存在变量中,然后在回调中使用它
$j('.treeExpanded').click (function () {
$this = $j(this);
$this.nextAll('ul').slideToggle("slow", function () {
$this.toggleClass('treeCollapsed','treeExpanded');
});
});
答案 1 :(得分:0)
$('.treeExpanded').toggle(function(){
$(this).nextAll('ul').removeClass("treeCollapsed");
$(this).addClass("treeExpanded");
}, function(){
$(this).nextAll('ul').removeClass("treeExpanded");
$(this).addClass("treeCollapsed");
});
这些方面的东西。我发现这比搞乱点击本身要好得多。