添加鼠标上键&onMousedown事件——javascript函数内部
adding onMouseUp & onMousedown events -- inside javascript function
我有一个div&其内部是具有CCD_ 1的输入图像
现在,我将输入图像的id传递给一个函数。
我知道我们可以直接在input标记中添加事件处理程序。但我想在javascript代码中完成
为什么图像CCD_ 2&onMouseUp
是not working
吗
当我按下图像时,他们没有警报弹出
<html>
<script type="text/javascript" src="../lib/mylib.js"></script>
<body>
<div class="Area">
<input id="Area-Light" type="image" src="http://www.psdgraphics.com/file/glossy-light-bulb.jpg" />
<p class="imgtxt" ">Area-Light</p>
<hr/>
<script type="text/javascript" >
var btn1 = new my_stateButton( "Area-Light"); // Button type
</script>
</body>
</html>
现在这个函数在mylib.js中,我正在添加onMouseDown
&图像的onMouseUp
事件:--
function my_stateButton( canvasName )
{
this.canvas = document.getElementById(canvasName);
this.canvas.onmousedown = this.onMouseDown.bind(this);
this.canvas.onmouseup = this.onMouseUp.bind(this);
// Do some work
};
Evevnt函数:--
my_stateButton.prototype.onMouseDown = function()
{
alert('down');
};
my_stateButton.prototype.onMouseUp = function()
{
alert('up');
};
您当然可以在javascript中做到这一点!
第一个问题是,设置btn1的脚本是在设置MouseDown等脚本之前执行的,所以请将其移动到主脚本中。
接下来,您不需要.bind(this)
。this.onMouseDown
已经是一个函数,您只需将this.canvas.onmousedown
属性设置为等于该函数,所以只需执行
this.canvas.onmousedown = this.onMouseDown;
将它们结合在一起,您将获得一个工作系统,正如您在这个jsbin中所看到的:http://jsbin.com/pofoc/1/edit。
我不完全确定为什么要构建一个对象来保存画布引用,并具有onMouseDown和onMouseUp属性;您可以将它们分配到该函数中,如下所示:http://jsbin.com/yaqah/2/edit。
我试了一下代码,它成功了。
我唯一怀疑的是"ID="Area-Light"
0"是在初始化my_StateButton
对象之后定义的。
当对象初始化时,两个函数(my_stateButton.prototype.onMouseUp
和my_stateButton.prototype.onMouseDown
)必须已经定义,否则当编译器执行构造函数代码时,它试图访问未定义对象的绑定方法,并生成一个js错误,阻止执行事件附加。
- 召回窗口加载事件 - javascript
- 动态创建OnClick事件Javascript
- 全局屏幕span onclick触发一个事件javascript
- 使用react js在跨域上执行事件javascript
- 在change事件javascript上动态添加行
- 在粘贴事件Javascript的输入字段中删除所有非数字字符
- 如何在多表单的输入框中使用输入事件javascript
- 无法查看特定信息.单击事件.Javascript
- 两个文本框事件Javascript
- 阻止鼠标滚轮滚动,但不阻止滚动条事件.JavaScript
- 从 onkeydown 事件 (Javascript) 获取当前用户输入
- “稍后提醒我”/“快速事件”JavaScript解决方案
- 更改我正在侦听的事件Javascript的对象的CSS
- setInterval 不允许同时单击事件 - javascript
- 对每种情况使用一个事件(JavaScript 开关)
- 仅创建第二次点击事件 Javascript
- 每 60 秒仅启动一次事件 (JavaScript)
- 如何连接来自不同文件的事件?Javascript/Backbone
- URL 更改事件 - JavaScript
- 无法在无头模式下使用 watir Webdriver 执行按钮元素的 onclick 事件 javascript