你是如何阻止这个Jquery mousedown事件在第一个事件之后被解雇的

时间:2013-06-14 15:56:15

标签: jquery

我希望在单击图像时触发一次事件,但只有一次,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;
}

任何想法?

3 个答案:

答案 0 :(得分: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

}

答案 1 :(得分:1)

使用现代Js事件,使用"一次"!

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

DocumentationCanIUse

答案 2 :(得分:0)

img.onclick = function() {
 do stuff
}

这将有效:)