]>
git.wh0rd.org - tt-rss.git/blob - lib/dojo/mouse.js.uncompressed.js
1 define("dojo/mouse", ["./_base/kernel", "./on", "./has", "./dom", "./_base/window"], function(dojo
, on
, has
, dom
, win
){
6 // This module provide mouse event handling utility functions and exports
7 // mouseenter and mouseleave event emulation.
8 // enter: Synthetic Event
9 // This is an extension event for the mouseenter that IE provides, emulating the
10 // behavior on other browsers.
11 // leave: Synthetic Event
12 // This is an extension event for the mouseleave that IE provides, emulating the
13 // behavior on other browsers.
15 // Test an event object (from a mousedown event) to see if the left button was pressed.
17 // Test an event object (from a mousedown event) to see if the middle button was pressed.
19 // Test an event object (from a mousedown event) to see if the right button was pressed.
21 // To use these events, you register a mouseenter like this:
22 // | define(["dojo/on", dojo/mouse"], function(on, mouse){
23 // | on(targetNode, mouse.enter, function(event){
24 // | dojo.addClass(targetNode, "highlighted");
26 // | on(targetNode, mouse.leave, function(event){
27 // | dojo.removeClass(targetNode, "highlighted");
32 has
.add("dom-quirks", win
.doc
&& win
.doc
.compatMode
== "BackCompat");
33 has
.add("events-mouseenter", win
.doc
&& "onmouseenter" in win
.doc
.createElement("div"));
36 if(has("dom-quirks") || !has("dom-addeventlistener")){
42 isButton: function(e
, button
){ return e
.button
& button
; },
43 isLeft: function(e
){ return e
.button
& 1; },
44 isMiddle: function(e
){ return e
.button
& 4; },
45 isRight: function(e
){ return e
.button
& 2; }
53 isButton: function(e
, button
){ return e
.button
== button
; },
54 isLeft: function(e
){ return e
.button
== 0; },
55 isMiddle: function(e
){ return e
.button
== 1; },
56 isRight: function(e
){ return e
.button
== 2; }
59 dojo
.mouseButtons
= mouseButtons
;
64 // Numeric value of the left mouse button for the platform.
67 // Numeric value of the middle mouse button for the platform.
70 // Numeric value of the right mouse button for the platform.
73 isButton: function(e, button){
75 // Checks an event object for a pressed button
77 // Event object to examine
79 // The button value (example: dojo.mouseButton.LEFT)
80 return e.button == button; // Boolean
84 // Checks an event object for the pressed left button
86 // Event object to examine
87 return e.button == 0; // Boolean
89 isMiddle: function(e){
91 // Checks an event object for the pressed middle button
93 // Event object to examine
94 return e.button == 1; // Boolean
98 // Checks an event object for the pressed right button
100 // Event object to examine
101 return e.button == 2; // Boolean
106 function eventHandler(type
, mustBubble
){
107 // emulation of mouseenter/leave with mouseover/out using descendant checking
108 var handler = function(node
, listener
){
109 return on(node
, type
, function(evt
){
110 if(!dom
.isDescendant(evt
.relatedTarget
, mustBubble
? evt
.target
: node
)){
111 return listener
.call(this, evt
);
116 handler
.bubble
= eventHandler(type
, true);
121 enter
: eventHandler("mouseover"),
122 leave
: eventHandler("mouseout"),
123 isLeft
: mouseButtons
.isLeft
,
124 isMiddle
: mouseButtons
.isMiddle
,
125 isRight
: mouseButtons
.isRight