我正在使用Ian Li的Raphael SketchPad,在保存图形时遇到了一些麻烦。

在对我的sketchpad进行更改后,应该更新ID为data的对象,因此我将控制台日志“更改”为检查目的。发生的情况是,在加载屏幕时,我看到控制台日志消息,而在进行更改时再也看不到它。

如何仅在进行更改后使console.log运行?
这是我正在使用的模板的扩展代码:
https://gist.github.com/benbakhshi/5143484

<script type="text/javascript">
   var sketchpad = Raphael.sketchpad("editor", {
      height: 260,
      width: 260,
      editing: true // true is default
   });

   // When the sketchpad changes, update the input field.
   sketchpad.change(function() {
      $("#data").val(sketchpad.json());
      console.log("changed");
   });
</script>

最佳答案

该问题似乎是您要尝试console.log而不保证.json调用实际上已经完成。而是尝试挂钩到change#Data事件以执行日志记录。这将确保在记录之前.json调用已完成。

就像是:

var sketchpad = Raphael.sketchpad("editor", {
  height: 260,
  width: 260,
  editing: true // true is default
});

$("#data").change(function () {
    console.log("changed");
});

// When the sketchpad changes, update the input field.
sketchpad.change(function() {
  $("#data").val(sketchpad.json()).change();
});

09-20 04:40