[英]passing an element with an event listener to appendChild inside template event
此Meteor客戶端代碼無法在公共方法中創建的畫布上觸發mousemove
事件。 onmousemove
也失敗了。
可以這樣做,如果是這樣,怎么辦?
Template.report.events({
'click #myElemnt': functionj(event) {
event.target.appendChild(lib.myCanvas());
}
})
//lib.js
lib = (function() {
return {
myCanvas: () => {
let canv = document.createElement('canvas');
//style it here
canv.addEventListener('onmousemove', function() {
console.log('moving');
}
return canv;
}
})();
編輯
以下是更改語法后代碼的一部分
lib = (function() {
return {
myCanvas: () => {
let sigCanvas = document.createElement('canvas');
sigCanvas.style.position = 'absolute';
sigCanvas.style.width = 25 + 'em';
sigCanvas.style.height = 15 + 'em';
sigCanvas.style.top = -90 + 'px';
sigCanvas.style.left = -50 + 'px';
sigCanvas.id = 'signature';
sigCanvas.style.border = '1px solid black';
sigCanvas.addEventListener('onmousemove', function() {
console.log('mouse moving again');
}, false);
return sigCanvas;
}
}());
根據EventTarget
API ,您應該為addEventListener
方法提供不帶on
前綴的事件類型。
這應該做的工作:
sigCanvas.addEventListener('mousemove', function(e) {
console.log('mouse moving again');
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.