Events 为什么我能';不更改mxEvent中的样式。是否第一次更改事件?

Events 为什么我能';不更改mxEvent中的样式。是否第一次更改事件?,events,mxgraph,Events,Mxgraph,我只是想在触发更改事件时更改一些样式。但是当我通过插入或移动顶点或边来更改模型时,样式没有更改。在我再次更改任何内容后,更改的顶点将更改其样式。有人知道为什么吗 这是我的密码: graph.getModel().addListener(mxEvent.CHANGE, function(sender, evt){ if(graphInited){ graph.getModel().beginUpdate(); try {

我只是想在触发更改事件时更改一些样式。但是当我通过插入或移动顶点或边来更改模型时,样式没有更改。在我再次更改任何内容后,更改的顶点将更改其样式。有人知道为什么吗

这是我的密码:

graph.getModel().addListener(mxEvent.CHANGE, function(sender, evt){
        if(graphInited){
            graph.getModel().beginUpdate();
            try {
                  var changes = evt.getProperty('edit').changes;
                  for (var i = 0; i < changes.length; i++) {
                      var change = changes[i];
                      var state = graph.view.getState(change.cell);
                      if(state!=null){//color #1C86EE means new insert
                          if(state.style[mxConstants.STYLE_IMAGE_BACKGROUND]!="#1C86EE" 
                          && state.style[mxConstants.STYLE_STROKECOLOR]!="#1C86EE" 
                          && state.style[mxConstants.STYLE_FONTCOLOR]!="#1C86EE"){
                              graph.setCellStyles(mxConstants.STYLE_IMAGE_BACKGROUND, '#68228B', [change.cell]);
                              graph.setCellStyles(mxConstants.STYLE_STROKECOLOR, '#68228B', [change.cell]);
                          }
                      }
                  }
            } finally {
                graph.getModel().endUpdate();
            }
        }
    });
graph.getModel().addListener(mxEvent.CHANGE,函数(sender,evt){
如图所示{
graph.getModel().beginUpdate();
试一试{
var changes=evt.getProperty(“编辑”).changes;
对于(变量i=0;i
我做了比第一次回答更仔细、更简单的解答

您需要添加:

  • evt.consume()
  • graph.refresh()
  • 所以最终的代码看起来像:

    graph.getModel().addListener(mxEvent.CHANGE,函数(sender,evt){
    如图所示{
    graph.getModel().beginUpdate();
    evt.consume();
    试一试{
    var changes=evt.getProperty(“编辑”).changes;
    对于(变量i=0;i