PointerEvent.isPrimary

The PointerEvent.isPrimary read-only property indicates whether or not the pointer device that created the event is the primary pointer. Returns true if the pointer that caused the event to be fired is the primary device and returns false otherwise.

In a multi-pointer scenario (such as a touch screen that supports more than one touch point), this property is used to identify a master pointer among the set of active pointers for each pointer type. Only a primary pointer will produce compatibility mouse events. Authors who desire only single-pointer interaction can achieve that by ignoring non-primary pointers.

A pointer is considered primary if the pointer represents a mouse device. A pointer representing pen input is considered the primary pen input if its pointerdown event was dispatched when no other active pointers representing pen input existed. A pointer representing touch input is considered the primary touch input if its pointerdown event was dispatched when no other active pointers representing touch input existed.

When two or more pointer device types are being used concurrently, multiple pointers (one for each pointerType) are considered primary. For example, a touch contact and a mouse cursor moved simultaneously will produce pointers that are both considered primary. If there are multiple primary pointers, these pointers will all produce compatibility mouse events (see Pointer_events for more information about pointer, mouse and touch interaction).

Primary pointer

 

Syntax

var isPrimary = pointerEvent.isPrimary;

Return value

isPrimary
Returns true if the pointer for this event is the primary pointer and returns false otherwise.

Example

This example illustrates using the value of the isPrimary to call the appropriate processing function.

target.addEventListener("pointerdown", function(ev) {
   if (ev.isPrimary) 
     process_primary_pointer(ev);
   else
     process_secondary_pointer(ev);
 }, false);

Specifications

Specification Status Comment
Pointer Events – Level 2
The definition of 'isPrimary' in that specification.
Working Draft Non-stable version.
Pointer Events
The definition of 'isPrimary' in that specification.
Recommendation Initial definition.

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung Internet
Basic supportChrome Full support 55Edge Full support 12Firefox Full support 59
Full support 59
Full support 41
Disabled
Disabled From version 41: this feature is behind the dom.w3c_pointer_events.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE Full support 10Opera Full support 42Safari No support NoWebView Android Full support 55Chrome Android Full support 55Edge Mobile Full support 12Firefox Android No support No
No support No
Full support 41
Disabled
Disabled From version 41: this feature is behind the dom.w3c_pointer_events.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android Full support 42Safari iOS No support NoSamsung Internet Android Full support 6.0

Legend

Full support  
Full support
No support  
No support
User must explicitly enable this feature.
User must explicitly enable this feature.

Document Tags and Contributors

Contributors to this page: gurdiga, lpd-au, chrisdavidmills, abbycar, jpmedley, rolfedh, AFBarstow
Last updated by: gurdiga,