0

对于那些可能花费数小时试图理解为什么他们没有从 select 回调中获得相同行为的人,无论它是由 select 事件还是由 select 方法触发的。

我不明白为什么当我手动选择一个项目时它工作得很好,而如果我使用这个方法没有反应。我试图在小部件本身上触发树元素上的事件,因为它似乎根本没有被触发。

select: function(e){
  var item = e.node;
  appui.f.post("admin/object_editor/obj/" +
    ( typeof(item.class) !== "undefined" ? "object" : "field" ) +
    "/" + item.id + "/" + item.uid, {partial:1}, $("#object_cfg_container"));
}
4

1 回答 1

0

该函数被触发,但在使用 select 方法时从第一行返回错误。

实际上发生的情况是事件作为函数的参数发送,您可以在其中找到节点属性,即新选择的对象。

但是,当您使用 select 方法时,事件参数不再具有节点属性。

因此,也许您发现不带参数使用的 select() 方法返回所选元素。

但是出现了一个新问题,这个函数在事件中启动时会返回旧的选中项,而作为方法启动时会返回新选中的项...

我的解决方案:

select: function(e){
  var item = e.node ? e.node : this.select(),  
      data = this.dataItem(item);
  ....
}
于 2013-04-15T20:10:26.787 回答