1

我正在使用 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>
4

1 回答 1

3

这个问题看起来像你试图在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();
});
于 2013-03-12T14:52:56.683 回答