在 jsTree 中,使节点文本可单击的最佳方法是什么(用于选中复选框)
In jsTree, what's the best way to make the node text clickable (for checking the checkbox)
当单击复选框旁边的节点文本时,我希望复选框切换其选中状态。通常这是通过<label for="whatever"></label>
完成的。但是由于 jsTree 不使用真正的复选框,那么如何做到这一点呢?
使用 $('#mytree').jstree({'plugins':['checkbox']})
创建树时,如果我把.delegate("a", "click", function (event, data) { $(event.target).find('.jstree-checkbox').click() })
放在最后,它就可以工作了。但有一个明显的延迟。
因此,我提出一个问题,单击其相应文本时选中该框的最佳方法是什么?
我同意你正在使用的点击处理程序技术。我没有看到提到的延迟,但这可能是因为我没有将任何内容发布回服务器。
如果复选框是纯可视的,那么也许可以直接修改类。这应该比抛出另一个点击事件更快。
$(event.target).parent("li:first").toggleClass("jstree-unchecked").toggleClass("jstree-checked");
jstree 的复选框插件在选中/取消选中节点时确实会执行其他操作。我相信以下内容应该可以满足您的需求:
$(function(){
// Initialize jstree
var $tree = $('.tree-target').jstree({
"plugins": ["checkbox"]
});
// Bind an event to the anchor tag within each tree entry
// Note: '.on' is used here as this will ensure that any
// dynamically-generated entries will also use this 'click'
// event.
$tree.on('click', 'li.tree > a', function (e) {
e.stopPropagation();
// Find the first parent 'tree' element
var $node = $(this).parents('li.tree').eq(0);
// Toggle the state of the current 'tree' element
// Note: The third parameter (in this case 'toggle')
// can be any value other than true or false
$tree.jstree('change_state', $node, 'toggle');
return false;
});
});
附带说明一下,我相信您的方法导致重大延迟的原因可能与您将click
事件绑定到页面上的每个<a/>
标签有关。在尝试查找适当的事件目标时,这将导致大量开销。
相关文章:
- 用于编写与我作为客户端查看的网页交互的脚本的术语(如果有的话)是什么
- 让会话值可用于JavaScript的好方法是什么
- 什么'是一个用于PHP+JS(extJS)开发的IDE,支持ctrl+click
- 用于指定元素 ID 的正确 JavaScript 语法是什么
- 该示例用于将变量传递给javascript中的对象的技术的名称是什么
- 单击另一个用于显示/隐藏图层的按钮时,在Adobe PDF中隐藏/显示按钮的代码是什么
- 在角度 api 中$watch返回一个取消注册函数,用于此侦听器取消注册的含义是什么
- 我们可以在 jquery ui 选项卡中用于隐藏/显示的不同效果是什么
- 用于编写 removeSuffix() 的最佳方法是什么
- 是否有可用于<对象>的Javascript“Evoke”函数 - 如果有,它是什么
- 当 prompt() 方法用于初始化 javascript 中的变量时,初始化变量的类型是什么
- 在 document.write 中用于具有属性的标签的正确语法是什么
- 用于验证范围内十进制值的正则表达式是什么 - 0 到 99999.00
- 在 jsTree 中,使节点文本可单击的最佳方法是什么(用于选中复选框)
- FlowType 用于定义接口的语言是什么?
- 将ES5 JavaScript用于Angular 2应用程序以及使用TypeScript的优缺点是什么?
- 用于删除两个“”之间的字符的正则表达式是什么/"在javascript中
- 将Ember.js仅用于Rails应用程序的一部分最直接的方法是什么
- 是什么导致了“;内联方法不适用于chrome浏览器”;
- 什么'是通过用于MongoDB的RESTful JSON接口创建API的最快方法