覆盖 fancytree 的单选按钮
Override radio button for fancytree
我正在使用 FancyTree 库编写我的网站,但遇到了这个问题:
我使用 skin-awesome 作为我的主题,并添加 glyph(preset4) 作为扩展。但是,我无法更改复选框的图标。这意味着即使 tree.checkbox 已设置为 "radio",复选框图标保持不变。
已经在网上找了一段时间了,没有找到任何接近的东西。任何反馈都会很棒。谢谢
这就是我最终要做的事情:
- 我连接到 createNode 回调,通过从 node.li
访问 DOM 将图标交换为复选框图标
- 我要做的第二部分是确保当节点为 selected/deselected 时,必须正确更改图标。这是通过挂接到 select 回调、检查 node.isSelected、找到图标并切换它 on/off.
来完成的
希望这对那里的人有所帮助。
Fancytree 2.26 版添加了这个缺失的功能。
我们通过为其提供超棒的字体图标来实现单选按钮。
像这样
以下是我们的 html 使用 Fancytree v2.24.0 产生此行为的代码:
<link href="components/jquery.fancytree/dist/skin-bootstrap/ui.fancytree.min.css" rel="stylesheet">
<script src="components/jquery.fancytree/dist/jquery.fancytree-all.min.js"></script>
这是我们生成这棵树的 javascript 代码:
<script type="text/javascript">
jQuery(document).ready(function () {
(function ($) {
glyph_opts = {
map: {
doc: "fa fa-file-o",
docOpen: "fa fa-file",
checkbox: "fa fa-circle-o",
checkboxSelected: "fa fa-dot-circle-o",
checkboxUnknown: "fa fa-minus-square-o",
dragHelper: "fa fa-arrows",
dropMarker: "fa fa-arrow-right",
error: "fa fa-exclamation-triangle",
expanderClosed: "fa fa-chevron-right",
expanderLazy: "fa fa-chevron-right", // glyphicon-plus-sign
expanderOpen: "fa fa-chevron-down", // glyphicon-collapse-down
folder: "fa fa-folder",
folderOpen: "fa fa-folder-open",
loading: "fa fa-refresh fa-spin"
}
};
$("#Checkboxes_Fancytree_id").fancytree({
extensions: ["glyph"],
checkbox: "radio",
selectMode: 1,
glyph: glyph_opts,
// tooltip: true,
// tooltip: function(event, data) { return data.node.title + "!"},
source: [
{title: "n1 (checkbox: false)", expanded: true, checkbox: false, children: [
{title: "n1.1"},
{title: "n1.2 (selected)", selected: true},
{title: "n1.3"}
]},
{title: "n2", expanded: true, checkbox: false, children: [
{title: "n2.1"},
{title: "n2.2"},
{title: "n2.3"}
]}
]
});
}(jQuery));
});
</script>
这是我们开发的在线演示:
希望这些信息对您有所帮助,如果您有任何改进我们的建议,请告诉我。
我正在使用 FancyTree 库编写我的网站,但遇到了这个问题:
我使用 skin-awesome 作为我的主题,并添加 glyph(preset4) 作为扩展。但是,我无法更改复选框的图标。这意味着即使 tree.checkbox 已设置为 "radio",复选框图标保持不变。
已经在网上找了一段时间了,没有找到任何接近的东西。任何反馈都会很棒。谢谢
这就是我最终要做的事情:
- 我连接到 createNode 回调,通过从 node.li 访问 DOM 将图标交换为复选框图标
- 我要做的第二部分是确保当节点为 selected/deselected 时,必须正确更改图标。这是通过挂接到 select 回调、检查 node.isSelected、找到图标并切换它 on/off. 来完成的
希望这对那里的人有所帮助。
Fancytree 2.26 版添加了这个缺失的功能。
我们通过为其提供超棒的字体图标来实现单选按钮。
像这样
以下是我们的 html 使用 Fancytree v2.24.0 产生此行为的代码:
<link href="components/jquery.fancytree/dist/skin-bootstrap/ui.fancytree.min.css" rel="stylesheet">
<script src="components/jquery.fancytree/dist/jquery.fancytree-all.min.js"></script>
这是我们生成这棵树的 javascript 代码:
<script type="text/javascript">
jQuery(document).ready(function () {
(function ($) {
glyph_opts = {
map: {
doc: "fa fa-file-o",
docOpen: "fa fa-file",
checkbox: "fa fa-circle-o",
checkboxSelected: "fa fa-dot-circle-o",
checkboxUnknown: "fa fa-minus-square-o",
dragHelper: "fa fa-arrows",
dropMarker: "fa fa-arrow-right",
error: "fa fa-exclamation-triangle",
expanderClosed: "fa fa-chevron-right",
expanderLazy: "fa fa-chevron-right", // glyphicon-plus-sign
expanderOpen: "fa fa-chevron-down", // glyphicon-collapse-down
folder: "fa fa-folder",
folderOpen: "fa fa-folder-open",
loading: "fa fa-refresh fa-spin"
}
};
$("#Checkboxes_Fancytree_id").fancytree({
extensions: ["glyph"],
checkbox: "radio",
selectMode: 1,
glyph: glyph_opts,
// tooltip: true,
// tooltip: function(event, data) { return data.node.title + "!"},
source: [
{title: "n1 (checkbox: false)", expanded: true, checkbox: false, children: [
{title: "n1.1"},
{title: "n1.2 (selected)", selected: true},
{title: "n1.3"}
]},
{title: "n2", expanded: true, checkbox: false, children: [
{title: "n2.1"},
{title: "n2.2"},
{title: "n2.3"}
]}
]
});
}(jQuery));
});
</script>
这是我们开发的在线演示:
希望这些信息对您有所帮助,如果您有任何改进我们的建议,请告诉我。