Yarin
Yarin

Reputation: 183989

Check if mouse is down on a mouseout event- jQuery

I want to know if a user stops pressing a button. So I capture the $button.mouseup(...) and $button.mouseout(...) events. However, I want the mouseout event to only matter when the user is still pressing the mouse- Otherwise, it will fire whenever the user passes over the button.

Any ideas?

Upvotes: 2

Views: 3161

Answers (2)

sdleihssirhc
sdleihssirhc

Reputation: 42496

A quick and dirty method would be to use globals (or closures; some way of giving both the mouseup and the mouseout functions access to the same variable):

var mouseIsUp = true,
    onMouseUp = function () {
        mouseIsUp = true;
        // ...
    },
    onMouseDown = function () {
        mouseIsUp = false;
    },
    onMouseOut = function () {
        if (!mouseIsUp) {
            // ...
        }
    };

Upvotes: 1

SLaks
SLaks

Reputation: 888203

Check e.which, which indicates the pressed button.

Upvotes: 8

Related Questions