1

我正在尝试将 rel 标记添加到所有 jsTree 为空的 rel 标记。我已经设法让它在 jsFiddle 中工作,但是当尝试将相同的代码应用于整个树时,它不起作用(也就是说,rel 标签仍然是空白/空的)。我从我的树中抓取了生成的源代码作为这个例子,这就是为什么我对代码不起作用感到困惑。

这是工作的 jsFiddle 版本:在此处查看

另外,如果 rel='disabled',是否有可能删除或禁用 a href 以禁用链接?

4

1 回答 1

3

对于那些好奇的人,我做了几件事——

  1. 我在数据库中将所有链接更新为我想要禁用的特定类型(即文件夹)。空白的 rel 标签也有效。如果您无法访问数据库,我还尝试了以下适用于 .bind("before.jstree") 的代码:

    $('li[rel=""]').attr('rel','disabled');
    
  2. 我对 jsTree 实例应用了绑定。以下代码是我使用的,

    .bind("before.jstree", function (e, data) {
     $('ul li[rel="file"] > a').each(function() {
      $(this).contents().unwrap();
     });
    })
    

这将展开具有 rel="file" 的链接(满足使节点不可点击的需要。您可以将 rel 标记设置为您想要展开的任何其他内容。

编辑:我也让它变得更简单,只需禁用单击和双击,如下所示:

   .bind("before.jstree", function (e, data) {
    $('ul li[rel="file"] > a').each(function() {
      $(this).click(false);
      $(this).dblclick(false);
     });
    })

我希望这有帮助!

于 2012-06-02T16:23:19.270 回答