2017-03-17 61 views
0

我试图将参数传递给函数,但无法弄清方法链接.bind时如何执行此操作。使用.bind时将参数传入回调函数

我想我的问题是双重的:

1)你如何传递参数给回调函数(在这种情况下,printEvent)当你使用绑定?

2)此外,您如何实际将pointerdown事件传递给printEvent函数?

var app = { 

    fruit : 'apple', 

    printEvent: function(event){ 
    console.log(event + this.fruit); 
    }, 

    eventListeners:function(){ 
    var target = document.getElementById('elementId'); 
    target.addEventListener('pointerdown', this.printEvent(event).bind(this)); 
    } 

} 
+1

你的意思是'target.addEventListener( 'pointerdown',this.printEvent.bind(这一点, 'pointerdown'));'? – Li357

+0

太棒了,这就回答了第一个问题。 :)除了,我怎么实际传递'pointerdown'事件本身。现在,你的解决方案只通过一个字符串 – Modermo

+1

我以为你只是想要的字符串。在这种情况下,只需绑定'this'。 'event'会自动被传递。 – Li357

回答

1
var app = { 
    fruit: 'apple', 

    printEvent: function (event) { 
    console.log(event.target, event.type, this.fruit) 
    }, 

    eventListeners: function() { 
    document.getElementById('elementId').addEventListener('pointerdown', this.printEvent.bind(this)) 
    } 
} 
相关问题