gpt4 book ai didi

javascript - 选择新 div 时从先前的 div 中删除事件类

转载 作者:行者123 更新时间:2023-12-03 04:25:01 25 4
gpt4 key购买 nike

我在选择 div 时将事件类设置为 div,但现在我想在选择新 div 时删除以前的事件类。

但在这里我不知道如何从先前选定的 div 中删除事件类。

生成树结构的代码来源:http://jsfiddle.net/brendanowen/uXbn6/8/

模板:

<table ng-repeat="data in tree track by $index">
<tbody>
<div ng-click="setDivActive(data)" ng-class="{'active': data.selected}"></div> //This div will be selected
</tbody>
</table>

<script type="text/ng-template" id="tree_item_renderer.html">
<button ng-click="add(data)">Add node</button>
<table ng-repeat="data in data.nodes" id="tree_item_renderer.html">
<tbody>
<div ng-click="setDivActive(data)" ng-class="{'active': data.selected}"></div> //This div will be selected
</tbody>
</table>
</script>

Controller :

 $scope.tree = [{name: "Node", nodes: [],selected:false}];
$scope.addNode = function (data) {
var post = data.nodes.length + 1;
var newName = data.name + '-' + post;
data.nodes.push({ name: newName, nodes: [],selected:false });
};

$scope.setDivActive= function (data) {
data.selected = true;
};

最佳答案

在将新项目设置为选定项目之前,请迭代整个集合并将它们全部设置为“未选定”:

function clearSelected(items) {
items.forEach(function(item) {
item.selected = false;
if (item.nodes) {
clearSelected(item.nodes);
}
});
}

$scope.setDivActive= function (data) {
clearSelected($scope.tree);
data.selected = true;
};

关于javascript - 选择新 div 时从先前的 div 中删除事件类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43782834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com