Javascript console.log 过早加载

标签 javascript jquery raphael

我正在与 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 调用确实已完成。相反,请尝试连接到 #Datachange 事件以执行日志记录。这将保证 .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();
});

关于Javascript console.log 过早加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15364160/

相关文章:

jQuery 切换和功能

javascript - Raphaël.js 中停止动画并重置元素的位置

javascript - 如何向 Raphael.js 对象添加阴影?

javascript - 如何从Mysql连接的响应中获取数据

javascript从下拉列表和复选框计算总计

javascript - Drupal 8 jQuery 覆盖前端 jQuery 版本

javascript - 拉斐尔 JS : animating path with repeat(Infinitely)

javascript - NodeJS - 获取二进制/位形式的缓冲区对象

javascript - 如何在单击按钮时更改 View /模型?

javascript - Flickity 有两张或更多幻灯片 - Vanilla JavaScript