Opened 11 years ago
Closed 11 years ago
#8789 closed enhancement (fixed)
Meta: Event Property Hooks
Reported by: | Rick Waldron | Owned by: | Rick Waldron |
---|---|---|---|
Priority: | blocker | Milestone: | 1.7 |
Component: | event | Version: | 1.5.2 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description (last modified by )
Implement the ability to specify properties of event.originalEvent to be moved over to event.* for specific event types, without the performance sacrifices of copying all event.originalEvent properties or adding to the globally used jQuery.event.props list
Will be particularly useful for newer events introduced by HTML5 JavaScript APIs that have special properties that are ignored by jQuery.event.fix() when it copies the jQuery.event.props array.
Ex.
Drag/Drop API has "dataTranser", touch event props, messaging event props, Custom data properties
Ultimately, this will allow end devs to write less code and we can stop recommending the extension of jQuery.event.props
Change History (20)
comment:1 Changed 11 years ago by
Description: | modified (diff) |
---|
comment:2 Changed 11 years ago by
Component: | unfiled → event |
---|---|
Milestone: | 1.next → 1.6 |
Owner: | set to Rick Waldron |
Priority: | undecided → low |
Status: | new → assigned |
comment:3 Changed 11 years ago by
comment:4 Changed 11 years ago by
Ticket #6942 is another example of when this could be useful. Right now we run all events through the same jQuery.event.fix paths regardless of event type, which is probably causing performance issues in cases where event frequency is high such as mousemove
.
comment:5 Changed 11 years ago by
Milestone: | 1.6 → 1.next |
---|---|
Owner: | Rick Waldron deleted |
Let's try to get this in 1.7.
comment:10 Changed 11 years ago by
Description: | modified (diff) |
---|
+1, I like the concept but am concerned about size issues and the temptation to define every property for every event type. Worth an exploratory implementation though.
comment:12 Changed 11 years ago by
Description: | modified (diff) |
---|
Considering the support for this proposal so far, I'm going to begin drafting tests towards a base implementation
comment:13 Changed 11 years ago by
Description: | modified (diff) |
---|
+1, might be a way to fix #6942 as well
comment:14 Changed 11 years ago by
Description: | modified (diff) |
---|
+1, rwaldron mentioned that there was a mechanism to do this on a per-event-type basis, is that happening?
comment:15 Changed 11 years ago by
To clarify, what @ajpiano refers to is that I had an idea for how to make this work on a per-event type basis, though no code is ready for review.
comment:16 Changed 11 years ago by
Milestone: | 1.next → 1.7 |
---|---|
Priority: | low → blocker |
comment:17 Changed 11 years ago by
Owner: | set to Rick Waldron |
---|
comment:18 Changed 11 years ago by
Keywords: | 1.8-discuss added; 1.7-discuss removed |
---|---|
Milestone: | 1.7 → 1.8 |
After much consideration, I've decided that this should wait until 1.8 (there will be enough changes to Events in 1.7, this seems like too much at once)
comment:19 Changed 11 years ago by
Keywords: | 1.8-discuss removed |
---|---|
Milestone: | 1.8 → 1.7 |
comment:20 Changed 11 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Merge branch 'fix-8789-rwldrn-fix' of git://github.com/dmethvin/jquery into fix-8789-rwldrn-fix
- 'fix-8789-rwldrn-fix' of git://github.com/dmethvin/jquery:
Minor cleanups to code. Futile effort to get IE to pass the unit test.
propHooks now an object with
props
array andfilter
function. Moves mouse properties to mouseProps current state Removes early return loop, must copy properties Shortcircuit fix if possible More ref localization Remove unnec. empty line More reference caching Cache reference to propHook lookup and result Restore this.propHooks => jQuery.event.propHooks for better gzip compression. Thanks gnarf Adds notes re: crash status of fix conditions Moves key event fixes to own even prop hook defs jQuery.event.propHooks => this.propHooks where possible Removes pageX pageY from prop list Updates rmouseEvent Implements jQuery.event.propHooks. Fixes #8789 Adds implementation tests for jQuery.event.propHooks #8789 Changeset: 36c82a1bcea14680b7efed47da8f3ebd9bf3de82
Can be stored as simply as shown here http://jsfiddle.net/rwaldron/JxdNj/