如何一键切换expand/collapse行为?
How to toggle expand/collapse behavior by one button?
我使用 Nestable 插件来创建树结构。我想将可切换按钮切换为 expand/collapse.
为了扩展,我添加了这个:
$('#tree').nestable('expandAll');
要折叠我添加这个:
$('#tree').nestable('collapseAll');
但我是用 2 个不同的按钮分别完成的。如何一键切换expand/collapse行为?
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>
像这样在两个 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>
尝试使用
$('#tree').nestable();
因为它会自动切换
这是我试过的 link https://codepen.io/anon/pen/goxpKv
您可以向按钮添加一个事件来检查按钮的动作
$('#tree').on('click', 'button', function(e){
$(e.target).data('action') == 'expand-all' ? $(e.target).data('action', 'collapse-all') : $(e.target).data('action', 'expand-all')
})
我使用 Nestable 插件来创建树结构。我想将可切换按钮切换为 expand/collapse.
为了扩展,我添加了这个:
$('#tree').nestable('expandAll');
要折叠我添加这个:
$('#tree').nestable('collapseAll');
但我是用 2 个不同的按钮分别完成的。如何一键切换expand/collapse行为?
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>
像这样在两个 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>
尝试使用
$('#tree').nestable();
因为它会自动切换
这是我试过的 link https://codepen.io/anon/pen/goxpKv
您可以向按钮添加一个事件来检查按钮的动作
$('#tree').on('click', 'button', function(e){
$(e.target).data('action') == 'expand-all' ? $(e.target).data('action', 'collapse-all') : $(e.target).data('action', 'expand-all')
})