飞镖和;丢弃div

时间:2013-06-17 08:03:05

标签: dart dart-webui

我正在使用拖放div,我有以下代码:

 void init() {


    ...
    baseWindowTitleDiv.on.mouseDown.add((MouseEvent event) => saveWindowXY(event));
    baseWindowTitleDiv.on.mouseUp.add((MouseEvent event) => stopMoveEvent(event));
    ...        
  }
  void saveWindowXY(MouseEvent event) {
    ...

    document.on.mouseMove.add((MouseEvent event) => runMoveEvent(event));

  }

  void stopMoveEvent(MouseEvent event) {
    print('stopMoveEvent call');    
    document.on.mouseMove.remove((MouseEvent event) => runMoveEvent(event));//does not work!    
  }

  void runMoveEvent(MouseEvent event) {
    ...
  }

我不明白如何从document.on.mouseMove中删除侦听器

完整代码在这里 - https://gist.github.com/OZKA/5795352

1 个答案:

答案 0 :(得分:2)

据我所知,你需要掌握你添加的事件,并在以后使用它来删除它,例如:

var myEvent = (MouseEvent event) => runMoveEvent(event); // store the function in a variable.

void init() {
  document.on.mouseMove.add(myEvent); // refer to the function by name
}


void stopMoveEvent(MouseEvent event) {
  document.on.mouseMove.remove(myEvent); // remove the same function.
}

void runMoveEvent(event) { ... }

您在代码中所做的是添加一个匿名函数,并删除不同的匿名函数。我认为http://dartbug.com/144(标记为WontFix)可能提供了有关其无效的详细信息。