开发者

How to simulate onclickout event with JavaScript

I'd like to somehow be able to define with JavaScript an onclickout event. That is something that happens wh开发者_运维知识库en the user clicks anywhere else that the element in question. I tried with onblur but it just don't seem to work :/

Is there any other way?


This uses the jQuery help, but the logic is the same if you prefer without it.

$(document).mouseup(function(event) {
    var condition = $(event.target).parents(/* element_in_question */).length;
        if (condition == 0) {   // 0 means the event is not originated from the element in question
            // Do what you need to do
        }
    }
});


document.getElementById('click').onclick = function(event) {
    event.stopPropagation();
}

document.onclick = function() {
    alert('click somewhere else');
}

jsFiddle.

This will send a click anywhere (except on #click) to the document.onclick handler, which will fire the alert().


You can set a variable, clickedin, on an element's click handler, and then have a click handler for the document that is checking if clickedin is true, and if it is, handle appropriately.

There may be a better way to accomplish the same end, though.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜