绑定D3.js事件功能?

时间:2013-07-12 11:41:57

标签: javascript jquery d3.js coffeescript force-layout

由于我通过咖啡使用D3.js,以下代码可以正常工作:

$ ->
  force = d3.layout.force()
    .on('tick', -> alert('tick triggered'))

但是这些没有,因为当时没有tick功能:

$ ->
  force = d3.layout.force()
    .on('tick', tick)
  tick = ->
    alert('tick triggered')

那么有什么方法可以将D3事件绑定到函数中吗?

是的,我试过

$ ->
  tick = ->
    alert('tick triggered')
  force = d3.layout.force()
    .on('tick', tick)

但是在勾选时有些Problem parsing d="MNaN,NaNLNaN,NaN"错误。

2 个答案:

答案 0 :(得分:0)

尝试更改

tick = ->

使用此

tick: =>

答案 1 :(得分:0)

$ ->
  force = d3.layout.force()
    .on('tick', tick)
  tick = ->
    alert('tick triggered')

装置

$(function() {
  var force, tick;
  force = d3.layout.force().on('tick', tick);
  return tick = function() {
    return alert('tick triggered');
  };
});

此处return tick = function(){}是非法的退货声明。

也许您需要在咖啡代码的末尾添加ticknull。 像这样。

$ ->
  force = d3.layout.force()
    .on('tick', tick)
  tick = -> alert('tick triggered')
  null
//////////////
$(function() {
  var force, tick;
  force = d3.layout.force().on('tick', tick);
  tick = function() {
    return alert('tick triggered');
  };
  return null;
});