在JS Event Listener中传递Param并访问Event
Pass Param and access Event in JS Event Listener
我有我的画布,点击时会提醒您点击的位置。这很好,但现在我想将一个参数传递给函数domouseDown,同时也可以访问事件以获取点击位置(event.pageX)。我已经通过将事件Listener更改为function(){domouseDown(param);}成功地将一个参数传递给了函数,但随后event.pageX和y不再工作。我需要两者都得到,但我似乎只能得到其中一个来工作。
<canvas id="canvas" width="1000" height="400"></canvas>
JavaScript
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
canvas.addEventListener("mousedown", doMouseDown, false);
//Or canvas.addEventListener("mousedown", function(){doMouseDown(param); }, false);
function doMouseDown(event) {
//or function doMouseDown(event, param){
var totalOffsetX = 0;
var totalOffsetY = 0;
var canvasX = 0;
var canvasY = 0;
var currentElement = this;
do {
totalOffsetX += currentElement.offsetLeft - currentElement.scrollLeft;
totalOffsetY += currentElement.offsetTop - currentElement.scrollTop;
}
while (currentElement = currentElement.offsetParent)
canvasX = event.pageX - totalOffsetX;
canvasY = event.pageY - totalOffsetY;
alert("x" + canvasX + " " + "y:" + canvasY);
}
我不确定是否理解,但这是您需要的吗?
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
canvas.addEventListener("mousedown", createEventWithParam("MyParam"), false);
function createEventWithParam(param) {
return function doMouseDown(event){
var totalOffsetX = 0;
var totalOffsetY = 0;
var canvasX = 0;
var canvasY = 0;
var currentElement = this;
do{
totalOffsetX += currentElement.offsetLeft - currentElement.scrollLeft;
totalOffsetY += currentElement.offsetTop - currentElement.scrollTop;
}
while(currentElement = currentElement.offsetParent)
canvasX = event.pageX - totalOffsetX;
canvasY = event.pageY - totalOffsetY;
alert("x" + canvasX + " " + "y:" + canvasY + " - " + param);
}
}
这是一种使用参数创建事件处理程序的方法。
相关文章:
- issue with FB.Event.subscribe
- Angularjs :$routeChangeStart event
- event.prventDefault()持续多久
- 用javascript中的param执行动态函数
- 如何传递相同页面<选择>值到同一页<f: param>
- <text区域>在我的html中包含event.keycode==13之后,wrap就不起作用了
- KeyDown event for CKeditor
- Javascript events: window.event vs argument reference (funct
- 动态填充Bootstrap选择选择器:change event dos'不起作用
- <td> focusin event .addclass
- event.preventDefault阻止ajax调用
- google.maps.event.addDomListener(window, 'load', fun
- jQuery event.target is_a_child_of(element)
- event.stopPropagation()在firefox javascript中不起作用
- asp.net text onkeyup event
- 如何从ondragend获取正确的event.pageX
- 面料:“;鼠标:向下”;在event.target中未返回对象
- 使用event.target.classlist区分按钮颜色
- 在JS Event Listener中传递Param并访问Event
- Angularjs:在change event时,从指令下拉菜单中调用带有param的控制器方法