1

我想在单击图像时触发一个事件,但只有一次,IE 在第一次单击后禁用该功能。我试过了..

var img = new Kinetic.Image({
                    x: position[rand][0],
                    y: position[rand][1],
                    image: imageObj,
                    width: 106,
                    height: 118
                });

img.on('mousedown', function(e) {

   do stuff

   e.stopPropagation();
}

img.on('mousedown', function() {

       do stuff

       return false;
}

有任何想法吗?

4

3 回答 3

2

使用one而不是on只注册一次事件。

img.one('mousedown', function(e) {

   do stuff

   e.stopPropagation();
}

您还可以使用off来关闭on处理程序内部的事件。

img.on('mousedown', function(e) {

   $(this).off('mousedown'); //turn off the handler
   do stuff

}
于 2013-06-14T15:57:07.057 回答
1

使用现代 Js 事件,带有“一次”!

img.addEventListener("mousedown", function() {
    // Do something
}, {once : true});
// You might also consider adding "capture : true" to replace stopPropogation

文档,可以使用

于 2017-09-24T20:56:18.393 回答
0
img.onclick = function() {
 do stuff
}

这将工作:)

于 2013-06-14T16:14:52.867 回答