如何仅在YUI3 widget-parent / child中订阅子事件?

时间:2012-04-05 23:23:16

标签: widget yui yui3

美好的一天!

我正在尝试使用YUI3 Widget-parent和widget-child构建分层小部件,目前正在学习Hierarchical ListBox Widget

我只想订阅点击的特定孩子的点击事件。从上面的页面继续使用示例,我正在做:

listbox.on("listbox:click", function(e) {...});

listbox.on("listbox:click", function(e) {...});

现在,当我点击列表中的“第三项 - 第二项”条目时,此事件将被触发“第三项 - 第二项”,“第三项”和根部小部件。在那个事件处理程序中,我发现无法确定e.target是否是我点击过的原始小部件,或者是否是其父级的小部件。

所以我的问题是:

  1. 我怎么发现我是原作的事件处理程序 被点击的widget?
  2. 是否有可能使点击的小部件成为 只有一个可以解雇这个事件吗?
  3. 谢谢。

1 个答案:

答案 0 :(得分:1)

Here's an example fiddle.

如果您只想将叶节点设为e.target,请使用:

listbox.on('option:click', function (e) {...

订阅listbox:click实际上并没有在我的示例中选择叶节点,但它会获取两个父listbox祖先小部件的点击。