【问题标题】:kineticjs passing parameter to callback function on onclickkineticjs在onclick上将参数传递给回调函数
【发布时间】:2014-03-02 02:41:54
【问题描述】:

我知道在 jquery 中你可以用类似
$('#btn').on('click',{param:'hello'},callback)。但是有了动力学,我似乎做不到。有什么想法吗?
var Stage = new Kinetic.Stage({ container: 'SurfaceCircle', width: 70, height: 68 }); var topBtnLayer = new Kinetic.Layer({ id: 'top' });

var topBtn = new Kinetic.Shape({ drawFunc: function (context) { context.moveTo(11, 10); context.arc(35, 34, 34, 1.25 * Math.PI, 1.75 * Math.PI, false); context.lineTo(44, 25); context.arc(35, 34, 12, 1.75 * Math.PI, 1.25 * Math.PI, true); context.lineTo(11, 10);
context.fillStrokeShape(this); context.stroke() },描边:“黑色”,填充:“黄色”,描边宽度:2/,id:“顶部”/,可见:真 }); topBtnLayer.add(topBtn).on('click tap',{param:'hello'}, callback);
我会得到运行时错误 Uncaught TypeError: Object # has no method 'call'

【问题讨论】:

    标签: jquery canvas kineticjs layer


    【解决方案1】:

    Kinetic 对象事件系统 (.on) 只需要 2 个参数

    • 要监听的事件类型(例如“点击”)
    • 回调函数

    在回调中this 是 Kinetic 对象。

    因此,您可以在回调中可访问的对象上设置一个属性。

    topBtn.param="hello";
    
    topBtn.on("click",function(){ alert(this.param); });  // click alerts "hello"
    

    演示:http://jsfiddle.net/m1erickson/5QRAA/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-05
      • 1970-01-01
      • 2011-03-28
      • 2011-10-05
      相关资源
      最近更新 更多