我有一个由代表图像(而不是文档)的文件夹和文件组成的树。
我试图防止图像被删除,同时允许添加、重命名、移动和删除文件夹。
使用 jsTree 类型我可以防止删除图像,但如果图像位于文件夹内,则不能。
如果这些相同的图像在一个文件夹中,则该文件夹将与所有图像一起删除。
关于如何防止删除非空文件夹的任何建议 - 其中有图像?
我尝试在“types”“delete_node”中放置一个函数,但我在识别被删除的文件夹时遇到了很糟糕的时间。我没有使用 $(this) 运气。
这是我最近的尝试。尝试在发送 delete_node 之前测试图像——
.bind("before.jstree", function (e, data) {
if(data.func === "delete_node") {
if ($(e.currentTarget).find("[rel='imgIR']")){ // rel='imgIR' identifies images
alert("Folder must be empty to delete it.");
e.stopImmediatePropagation();
return false;
} else {
return true;
}
}
})
Run Code Online (Sandbox Code Playgroud)
它的工作原理是阻止它删除。但它每次都会停止删除,无论有没有图像。
当我将 (e.currentTarget).html() 发送到控制台日志时,包含整个树,而不仅仅是计划删除的文件夹。而且我找不到选择特定文件夹的方法。
我正在使用的插件是:
"plugins" : [ "html_data", "types", "themes", "ui", "crrm", "contextmenu", "dnd" ]
Run Code Online (Sandbox Code Playgroud)
任何和所有帮助将不胜感激。谢谢!
*好的,我取得了一些进展,但又遇到了新的挫折。
使用 Array.prototype.slice.call(arguments, 1) 我终于能够找到 data.args[0][0] 给了我特定的节点。但是现在我从 jquery.jstree.js 的第 234 行收到了一个错误,我被卡住了。
错误:Uncaught TypeError: Function.prototype.apply: …