1

我正在查看dynatree 文档,它显示 onClick 回调函数传递了两个参数:节点和事件。这些参数究竟是什么?我会假设“节点”参数是 DynaTreeNode 类型。

我正在寻找的是在为元素调用 onClick 回调时获取对与节点关联的元素的引用<a>。我知道在这种情况下,node.data.href将等于<a>元素的 href 并node.getEventTargetType(event)返回“title”。该<a>元素将具有类“dynatree-title”。我实际上正在寻找对<span>紧接在元素之前的标签的引用<a>。它将具有“dynatree-expander”类。如果我可以获取<a>元素的引用,我可以使用 jQuery.prev()方法来获取<span>.

<a>当为元素前面的元素调用 onClick 回调时,我需要在它中执行条件登录<span class="dynatree-expander">

编辑:

由于以下帖子,我一直专注于“节点”参数。他们表明它可能具有文档中未列出的属性。但是,我相信“事件”参数可能与 jQuery 单击处理程序的“事件”参数相同。因此,我应该使用event.target. 我将进行实验,看看是否可行。

以下是显示“节点”参数具有未记录属性的帖子:

  1. 这篇文章显示node.spanonActivate
  2. 这篇文章显示node.spanonPostInit
  3. 这篇文章显示node.span,node.ulnode.lifor onRender

但后来我看到了这篇文章,它显示了event.target.

4

1 回答 1

0

“node”参数绝对是dynatree 文档中列出的 DynaTreeNode 类型。我查看了它的属性,并且为 DynaTreeNode 记录的所有属性都在那里。它的原型是空的;属性都直接在对象上。

“节点”上有一些属性未在文档中列出。一些属性名称以下划线开头,因此绝对不应该使用它们,但其他的则不要。未记录的属性列表确实包括“ul”、“li”和“span”。其他值得注意的是“childList”、“parent”和“tree”。尽管 DynaTreeNode 类型没有列出“树”,但文档中的几个示例显示了它的用法。

“node.span”元素是一个<span>包围<span>扩展器图标和<a>包含标题的元素。“node.li”元素是<li>围绕<span>“node.span”引用的元素。我原以为“node.ul”会引用周围的<ul>元素,但对我来说它总是为空。

“node”参数上未记录的一些函数是“append”、“collapseSiblings”、“fromDict”和“removeChild”。

“事件”参数确实是一个 jQuery 事件参数,因此event.target可以很好地获取被点击的元素。

于 2013-02-18T05:04:50.170 回答