Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
J
jquery
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
夏彬
jquery
Commits
4fd70e7e
Commit
4fd70e7e
authored
Oct 06, 2011
by
Rick Waldron
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Style sweep
parent
e5b16e33
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
36 additions
and
26 deletions
+36
-26
event.js
src/event.js
+36
-26
No files found.
src/event.js
View file @
4fd70e7e
...
@@ -6,7 +6,7 @@ var rnamespaces = /\.(.*)$/,
...
@@ -6,7 +6,7 @@ var rnamespaces = /\.(.*)$/,
rspaces
=
/ /g
,
rspaces
=
/ /g
,
rescape
=
/
[^\w\s
.|`
]
/g
,
rescape
=
/
[^\w\s
.|`
]
/g
,
rtypenamespace
=
/^
([^\.]
*
)?(?:\.(
.+
))?
$/
,
rtypenamespace
=
/^
([^\.]
*
)?(?:\.(
.+
))?
$/
,
rhoverHack
=
/
\b
hover
(\.\S
+
)?
/
,
rhoverHack
=
/
\b
hover
(\.\S
+
)?
/
,
rkeyEvent
=
/^key/
,
rkeyEvent
=
/^key/
,
rmouseEvent
=
/^
(?:
mouse|contextmenu
)
|click/
,
rmouseEvent
=
/^
(?:
mouse|contextmenu
)
|click/
,
rquickIs
=
/^
([\w\-]
+
)?(?:
#
([\w\-]
+
))?(?:\.([\w\-]
+
))?(?:\[([\w
+
\-]
+
)
=
[
"'
]?([\w\-]
*
)[
"'
]?\])?
$/
,
rquickIs
=
/^
([\w\-]
+
)?(?:
#
([\w\-]
+
))?(?:\.([\w\-]
+
))?(?:\[([\w
+
\-]
+
)
=
[
"'
]?([\w\-]
*
)[
"'
]?\])?
$/
,
...
@@ -88,16 +88,21 @@ jQuery.event = {
...
@@ -88,16 +88,21 @@ jQuery.event = {
types
=
types
.
replace
(
rhoverHack
,
"mouseover$1 mouseout$1"
).
split
(
" "
);
types
=
types
.
replace
(
rhoverHack
,
"mouseover$1 mouseout$1"
).
split
(
" "
);
for
(
t
=
0
;
t
<
types
.
length
;
t
++
)
{
for
(
t
=
0
;
t
<
types
.
length
;
t
++
)
{
tns
=
rtypenamespace
.
exec
(
types
[
t
]
)
||
[];
tns
=
rtypenamespace
.
exec
(
types
[
t
]
)
||
[];
type
=
tns
[
1
];
type
=
tns
[
1
];
namespaces
=
(
tns
[
2
]
||
""
).
split
(
"."
).
sort
();
namespaces
=
(
tns
[
2
]
||
""
).
split
(
"."
).
sort
();
// If event changes its type, use the special event handlers for the changed type
// If event changes its type, use the special event handlers for the changed type
special
=
jQuery
.
event
.
special
[
type
]
||
{};
special
=
jQuery
.
event
.
special
[
type
]
||
{};
type
=
(
selector
?
special
.
delegateType
:
special
.
bindType
)
||
type
;
// If selector defined, determine special event api type, otherwise given type
type
=
(
selector
?
special
.
delegateType
:
special
.
bindType
)
||
type
;
// Update special based on newly reset type
special
=
jQuery
.
event
.
special
[
type
]
||
{};
special
=
jQuery
.
event
.
special
[
type
]
||
{};
// handleObj is passed to all event handlers
// handleObj is passed to all event handlers
// will be the result of merging handleObjIn
handleObj
=
jQuery
.
extend
({
handleObj
=
jQuery
.
extend
({
type
:
type
,
type
:
type
,
origType
:
tns
[
1
],
origType
:
tns
[
1
],
...
@@ -106,7 +111,7 @@ jQuery.event = {
...
@@ -106,7 +111,7 @@ jQuery.event = {
guid
:
handler
.
guid
,
guid
:
handler
.
guid
,
selector
:
selector
,
selector
:
selector
,
namespace
:
namespaces
.
join
(
"."
)
namespace
:
namespaces
.
join
(
"."
)
},
handleObjIn
);
},
handleObjIn
);
// Delegated event; pre-analyze selector so it's processed quickly on event dispatch
// Delegated event; pre-analyze selector so it's processed quickly on event dispatch
if
(
selector
)
{
if
(
selector
)
{
...
@@ -185,7 +190,7 @@ jQuery.event = {
...
@@ -185,7 +190,7 @@ jQuery.event = {
namespaces
=
tns
[
2
];
namespaces
=
tns
[
2
];
// Unbind all events (on this namespace, if provided) for the element
// Unbind all events (on this namespace, if provided) for the element
if
(
!
type
)
{
if
(
!
type
)
{
namespaces
=
namespaces
?
"."
+
namespaces
:
""
;
namespaces
=
namespaces
?
"."
+
namespaces
:
""
;
for
(
j
in
events
)
{
for
(
j
in
events
)
{
jQuery
.
event
.
remove
(
elem
,
j
+
namespaces
,
handler
,
selector
);
jQuery
.
event
.
remove
(
elem
,
j
+
namespaces
,
handler
,
selector
);
...
@@ -194,10 +199,10 @@ jQuery.event = {
...
@@ -194,10 +199,10 @@ jQuery.event = {
}
}
special
=
jQuery
.
event
.
special
[
type
]
||
{};
special
=
jQuery
.
event
.
special
[
type
]
||
{};
type
=
(
selector
?
special
.
delegateType
:
special
.
bindType
)
||
type
;
type
=
(
selector
?
special
.
delegateType
:
special
.
bindType
)
||
type
;
eventType
=
events
[
type
]
||
[];
eventType
=
events
[
type
]
||
[];
origCount
=
eventType
.
length
;
origCount
=
eventType
.
length
;
namespaces
=
namespaces
?
new
RegExp
(
"(^|
\\
.)"
+
namespaces
.
split
(
"."
).
sort
().
join
(
"
\\
.(?:.*
\\
.)?"
)
+
"(
\\
.|$)"
)
:
null
;
namespaces
=
namespaces
?
new
RegExp
(
"(^|
\\
.)"
+
namespaces
.
split
(
"."
).
sort
().
join
(
"
\\
.(?:.*
\\
.)?"
)
+
"(
\\
.|$)"
)
:
null
;
// Only need to loop for special events or selective removal
// Only need to loop for special events or selective removal
if
(
handler
||
namespaces
||
selector
||
special
.
remove
)
{
if
(
handler
||
namespaces
||
selector
||
special
.
remove
)
{
...
@@ -265,7 +270,7 @@ jQuery.event = {
...
@@ -265,7 +270,7 @@ jQuery.event = {
// Event object or event type
// Event object or event type
var
type
=
event
.
type
||
event
,
var
type
=
event
.
type
||
event
,
namespaces
=
[],
namespaces
=
[],
exclusive
,
i
,
cur
,
old
,
ontype
,
special
,
doc
,
eventPath
,
bubbleType
,
cache
,
exclusive
,
i
,
cur
,
old
,
ontype
,
special
,
doc
,
eventPath
,
bubbleType
,
addHandlers
=
function
(
elem
,
type
)
{
addHandlers
=
function
(
elem
,
type
)
{
// Defer getting handler so we don't waste time in case propagation is stopped
// Defer getting handler so we don't waste time in case propagation is stopped
if
(
(
jQuery
.
_data
(
elem
,
"events"
)
||
{})[
type
]
)
{
if
(
(
jQuery
.
_data
(
elem
,
"events"
)
||
{})[
type
]
)
{
...
@@ -321,7 +326,7 @@ jQuery.event = {
...
@@ -321,7 +326,7 @@ jQuery.event = {
if
(
!
elem
)
{
if
(
!
elem
)
{
// TODO: Stop taunting the data cache; remove global events and always attach to document
// TODO: Stop taunting the data cache; remove global events and always attach to document
var
cache
=
jQuery
.
cache
;
cache
=
jQuery
.
cache
;
for
(
i
in
cache
)
{
for
(
i
in
cache
)
{
if
(
cache
[
i
].
events
&&
cache
[
i
].
events
[
type
]
)
{
if
(
cache
[
i
].
events
&&
cache
[
i
].
events
[
type
]
)
{
jQuery
.
event
.
trigger
(
event
,
data
,
cache
[
i
].
handle
.
elem
);
jQuery
.
event
.
trigger
(
event
,
data
,
cache
[
i
].
handle
.
elem
);
...
@@ -364,7 +369,7 @@ jQuery.event = {
...
@@ -364,7 +369,7 @@ jQuery.event = {
for
(
i
=
0
;
i
<
eventPath
.
length
;
i
++
)
{
for
(
i
=
0
;
i
<
eventPath
.
length
;
i
++
)
{
cur
=
eventPath
[
i
];
cur
=
eventPath
[
i
];
event
.
type
=
cur
.
type
;
event
.
type
=
cur
.
type
;
(
cur
.
handler
||
jQuery
.
_data
(
cur
.
elem
,
"handle"
)
).
apply
(
cur
.
elem
,
data
);
(
cur
.
handler
||
jQuery
.
_data
(
cur
.
elem
,
"handle"
)
).
apply
(
cur
.
elem
,
data
);
if
(
event
.
isPropagationStopped
()
)
{
if
(
event
.
isPropagationStopped
()
)
{
break
;
break
;
}
}
...
@@ -382,6 +387,7 @@ jQuery.event = {
...
@@ -382,6 +387,7 @@ jQuery.event = {
// Don't do default actions on window, that's where global variables be (#6170)
// Don't do default actions on window, that's where global variables be (#6170)
// IE<9 dies on focus/blur to hidden element (#1486)
// IE<9 dies on focus/blur to hidden element (#1486)
if
(
ontype
&&
elem
[
type
]
&&
((
type
!==
"focus"
&&
type
!==
"blur"
)
||
event
.
target
.
offsetWidth
!==
0
)
&&
!
jQuery
.
isWindow
(
elem
)
)
{
if
(
ontype
&&
elem
[
type
]
&&
((
type
!==
"focus"
&&
type
!==
"blur"
)
||
event
.
target
.
offsetWidth
!==
0
)
&&
!
jQuery
.
isWindow
(
elem
)
)
{
// Don't re-trigger an onFOO event when we call its FOO() method
// Don't re-trigger an onFOO event when we call its FOO() method
old
=
elem
[
ontype
];
old
=
elem
[
ontype
];
...
@@ -411,7 +417,7 @@ jQuery.event = {
...
@@ -411,7 +417,7 @@ jQuery.event = {
var
handlers
=
((
jQuery
.
_data
(
this
,
"events"
)
||
{})[
event
.
type
]
||
[]),
var
handlers
=
((
jQuery
.
_data
(
this
,
"events"
)
||
{})[
event
.
type
]
||
[]),
delegateCount
=
handlers
.
delegateCount
,
delegateCount
=
handlers
.
delegateCount
,
args
=
Array
.
prototype
.
slice
.
call
(
arguments
,
0
),
args
=
[]
.
slice
.
call
(
arguments
,
0
),
handlerQueue
=
[],
handlerQueue
=
[],
i
,
cur
,
selMatch
,
matches
,
handleObj
,
sel
,
hit
,
related
;
i
,
cur
,
selMatch
,
matches
,
handleObj
,
sel
,
hit
,
related
;
...
@@ -432,9 +438,9 @@ jQuery.event = {
...
@@ -432,9 +438,9 @@ jQuery.event = {
if
(
handleObj
.
isPositional
)
{
if
(
handleObj
.
isPositional
)
{
// Since .is() does not work for positionals; see http://jsfiddle.net/eJ4yd/3/
// Since .is() does not work for positionals; see http://jsfiddle.net/eJ4yd/3/
hit
=
(
hit
||
(
selMatch
[
sel
]
=
jQuery
(
sel
))
).
index
(
cur
)
>=
0
;
hit
=
(
hit
||
(
selMatch
[
sel
]
=
jQuery
(
sel
))
).
index
(
cur
)
>=
0
;
}
else
if
(
hit
===
undefined
)
{
}
else
if
(
hit
===
undefined
)
{
hit
=
selMatch
[
sel
]
=
(
handleObj
.
quick
?
quickIs
(
cur
,
handleObj
.
quick
)
:
jQuery
(
cur
).
is
(
sel
)
);
hit
=
selMatch
[
sel
]
=
(
handleObj
.
quick
?
quickIs
(
cur
,
handleObj
.
quick
)
:
jQuery
(
cur
).
is
(
sel
)
);
}
}
if
(
hit
)
{
if
(
hit
)
{
matches
.
push
(
handleObj
);
matches
.
push
(
handleObj
);
...
@@ -509,7 +515,7 @@ jQuery.event = {
...
@@ -509,7 +515,7 @@ jQuery.event = {
// Add which for click: 1 === left; 2 === middle; 3 === right
// Add which for click: 1 === left; 2 === middle; 3 === right
// Note: button is not normalized, so don't use it
// Note: button is not normalized, so don't use it
if
(
!
event
.
which
&&
button
!==
undefined
)
{
if
(
!
event
.
which
&&
button
!==
undefined
)
{
event
.
which
=
(
button
&
1
?
1
:
(
button
&
2
?
3
:
(
button
&
4
?
2
:
0
)
)
);
event
.
which
=
(
button
&
1
?
1
:
(
button
&
2
?
3
:
(
button
&
4
?
2
:
0
)
)
);
}
}
return
event
;
return
event
;
...
@@ -524,11 +530,12 @@ jQuery.event = {
...
@@ -524,11 +530,12 @@ jQuery.event = {
// Create a writable copy of the event object and normalize some properties
// Create a writable copy of the event object and normalize some properties
var
originalEvent
=
event
,
var
originalEvent
=
event
,
fixHook
=
jQuery
.
event
.
fixHooks
[
event
.
type
]
||
{},
fixHook
=
jQuery
.
event
.
fixHooks
[
event
.
type
]
||
{},
copy
=
fixHook
.
props
?
this
.
props
.
concat
(
fixHook
.
props
)
:
this
.
props
;
copy
=
fixHook
.
props
?
this
.
props
.
concat
(
fixHook
.
props
)
:
this
.
props
,
i
;
event
=
jQuery
.
Event
(
originalEvent
);
event
=
jQuery
.
Event
(
originalEvent
);
for
(
var
i
=
copy
.
length
,
prop
;
i
;
)
{
for
(
i
=
copy
.
length
,
prop
;
i
;
)
{
prop
=
copy
[
--
i
];
prop
=
copy
[
--
i
];
event
[
prop
]
=
originalEvent
[
prop
];
event
[
prop
]
=
originalEvent
[
prop
];
}
}
...
@@ -592,10 +599,13 @@ jQuery.event = {
...
@@ -592,10 +599,13 @@ jQuery.event = {
// Piggyback on a donor event to simulate a different one.
// Piggyback on a donor event to simulate a different one.
// Fake originalEvent to avoid donor's stopPropagation, but if the
// Fake originalEvent to avoid donor's stopPropagation, but if the
// simulated event prevents default then we do the same on the donor.
// simulated event prevents default then we do the same on the donor.
var
e
=
jQuery
.
extend
(
var
e
=
jQuery
.
extend
(
new
jQuery
.
Event
(),
new
jQuery
.
Event
(),
event
,
event
,
{
type
:
type
,
isSimulated
:
true
,
originalEvent
:
{}
}
{
type
:
type
,
isSimulated
:
true
,
originalEvent
:
{}
}
);
);
if
(
bubble
)
{
if
(
bubble
)
{
jQuery
.
event
.
trigger
(
e
,
null
,
elem
);
jQuery
.
event
.
trigger
(
e
,
null
,
elem
);
...
@@ -611,7 +621,7 @@ jQuery.event = {
...
@@ -611,7 +621,7 @@ jQuery.event = {
// Run jQuery handler functions; called from jQuery.event.handle
// Run jQuery handler functions; called from jQuery.event.handle
function
dispatch
(
target
,
event
,
handlers
,
args
)
{
function
dispatch
(
target
,
event
,
handlers
,
args
)
{
var
run_all
=
!
event
.
exclusive
&&
!
event
.
namespace
,
var
run_all
=
!
event
.
exclusive
&&
!
event
.
namespace
,
specialHandle
=
(
jQuery
.
event
.
special
[
event
.
type
]
||
{}
).
handle
,
specialHandle
=
(
jQuery
.
event
.
special
[
event
.
type
]
||
{}
).
handle
,
j
,
handleObj
,
ret
;
j
,
handleObj
,
ret
;
event
.
currentTarget
=
target
;
event
.
currentTarget
=
target
;
...
@@ -628,7 +638,7 @@ function dispatch( target, event, handlers, args ) {
...
@@ -628,7 +638,7 @@ function dispatch( target, event, handlers, args ) {
event
.
data
=
handleObj
.
data
;
event
.
data
=
handleObj
.
data
;
event
.
handleObj
=
handleObj
;
event
.
handleObj
=
handleObj
;
ret
=
(
specialHandle
||
handleObj
.
handler
).
apply
(
target
,
args
);
ret
=
(
specialHandle
||
handleObj
.
handler
).
apply
(
target
,
args
);
if
(
ret
!==
undefined
)
{
if
(
ret
!==
undefined
)
{
event
.
result
=
ret
;
event
.
result
=
ret
;
...
@@ -666,8 +676,8 @@ jQuery.Event = function( src, props ) {
...
@@ -666,8 +676,8 @@ jQuery.Event = function( src, props ) {
// Events bubbling up the document may have been marked as prevented
// Events bubbling up the document may have been marked as prevented
// by a handler lower down the tree; reflect the correct value.
// by a handler lower down the tree; reflect the correct value.
this
.
isDefaultPrevented
=
(
src
.
defaultPrevented
||
src
.
returnValue
===
false
||
this
.
isDefaultPrevented
=
(
src
.
defaultPrevented
||
src
.
returnValue
===
false
||
src
.
getPreventDefault
&&
src
.
getPreventDefault
())
?
returnTrue
:
returnFalse
;
src
.
getPreventDefault
&&
src
.
getPreventDefault
()
)
?
returnTrue
:
returnFalse
;
// Event type
// Event type
}
else
{
}
else
{
...
@@ -836,7 +846,7 @@ if ( !jQuery.support.changeBubbles ) {
...
@@ -836,7 +846,7 @@ if ( !jQuery.support.changeBubbles ) {
jQuery
.
event
.
add
(
this
,
"beforeactivate._change"
,
function
(
e
)
{
jQuery
.
event
.
add
(
this
,
"beforeactivate._change"
,
function
(
e
)
{
var
elem
=
e
.
target
;
var
elem
=
e
.
target
;
if
(
rformElems
.
test
(
elem
.
nodeName
)
&&
!
elem
.
_change_attached
)
{
if
(
rformElems
.
test
(
elem
.
nodeName
)
&&
!
elem
.
_change_attached
)
{
jQuery
.
event
.
add
(
elem
,
"change._change"
,
function
(
event
)
{
jQuery
.
event
.
add
(
elem
,
"change._change"
,
function
(
event
)
{
if
(
this
.
parentNode
&&
!
event
.
isSimulated
)
{
if
(
this
.
parentNode
&&
!
event
.
isSimulated
)
{
jQuery
.
event
.
simulate
(
"change"
,
this
.
parentNode
,
event
,
true
);
jQuery
.
event
.
simulate
(
"change"
,
this
.
parentNode
,
event
,
true
);
...
@@ -846,7 +856,7 @@ if ( !jQuery.support.changeBubbles ) {
...
@@ -846,7 +856,7 @@ if ( !jQuery.support.changeBubbles ) {
}
}
});
});
},
},
handle
:
function
(
event
)
{
handle
:
function
(
event
)
{
var
elem
=
event
.
target
;
var
elem
=
event
.
target
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment