我使用Nestable插件来创建树结构。我想要切换按钮来展开/折叠。
要展开我添加:
$('#tree').nestable('expandAll');
要折叠我添加:
$('#tree').nestable('collapseAll');
但是我用2个不同的按钮单独做了。如何通过一个按钮切换展开/折叠行为?
HTML:
<div id="tree" class="dd">
<ol class="dd-list">
<li class="dd-item" data-id="1">
<div class="dd-handle">Item 1</div>
</li>
<li class="dd-item" data-id="2">
<div class="dd-handle">Item 2</div>
</li>
<li class="dd-item" data-id="3">
<div class="dd-handle">Item 3</div>
<ol class="dd-list">
<li class="dd-item" data-id="4">
<div class="dd-handle">Item 4</div>
</li>
<li class="dd-item" data-id="5">
<div class="dd-handle">Item 5</div>
</li>
</ol>
</li>
</ol>
</div>
答案 0 :(得分:2)
在这两个function
之间切换:
var click = false;
function callFunction(el) {
if (!click) {
//$('#tree').nestable('expandAll');
console.log('expandAll');
click = true;
} else {
//$('#tree').nestable('collapseAll');
click = false;
console.log('collapseAll');
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button onclick="callFunction(this)">Toggle</button>
答案 1 :(得分:1)
你可以在按钮上添加一个事件来检查按钮的动作
$('#tree').on('click', 'button', function(e){
$(e.target).data('action') == 'expand-all' ? $(e.target).data('action', 'collapse-all') : $(e.target).data('action', 'expand-all')
})
答案 2 :(得分:0)