Commit Graph

262 Commits

Author SHA1 Message Date
Brandon Aaron
96fd5f18d4 special event refactor left over code 2009-05-01 00:36:21 +00:00
Brandon Aaron
c6db93c373 fix for #2620 2009-05-01 00:21:29 +00:00
Brandon Aaron
a4b8fed8ad only copy guid from handler to modifiedHandler if it does not already have one 2009-05-01 00:02:51 +00:00
Brandon Aaron
aef1989ba7 live event handlers now receive data from trigger, fixes #4532, thanks nbubna 2009-04-30 21:50:15 +00:00
Brandon Aaron
71efbdd3b2 refactor specialAll into add and remove hooks for existing special events, live now accepts optional data param like bind, fixes #4612 and #4613, thanks to Mike Helgeson 2009-04-30 21:44:25 +00:00
Brandon Aaron
287ecdbf67 event clean up 2009-04-30 01:26:09 +00:00
Brandon Aaron
851846aabe .unbind() without any arguments now also unbinds namespaced events. fixes #4609 and #4241 2009-04-29 21:45:58 +00:00
Brandon Aaron
f5690995dd fix for #4268. bind now works with iframe windows. thanks tr4nslator 2009-04-22 04:18:53 +00:00
Brandon Aaron
3715d73f79 fix for #2911 2009-04-22 02:31:29 +00:00
Brandon Aaron
f8ef75eb91 remove trailing spaces 2009-03-23 01:55:17 +00:00
Brandon Aaron
30e760b63f fix for #4189, live/die now work with contexts other than just document 2009-03-20 03:10:07 +00:00
John Resig
dae96f552e Added some more information to the unload event cleanup. 2009-03-19 15:16:02 +00:00
John Resig
985856b823 No longer use arguments.callee or RegExp (use new RegExp, instead) for ES 3.1 and Caja compatibility. Fixes jQuery bug #4251. 2009-02-26 18:00:41 +00:00
Ariel Flesler
48164ee603 jquery event: Fixing event.currentTarget for live(). 2009-02-23 13:27:48 +00:00
Ariel Flesler
0a1b0db347 jquery event: closes #4033. e.currentTarget wasn't being enforced for native events (IE doesn't have it) 2009-02-17 12:38:16 +00:00
John Resig
9aa0c69c43 Fixed bubbling of live events (if an inner element handles an event first - and stops progatation - then the parent event doesn't encounter the event). Thanks to Irae for the patch. Fixes bug #3980. 2009-02-09 23:29:57 +00:00
John Resig
ce00f88ae2 Added a fix, suggested by Diego, for IE firing the ready event too late. Fixes bug #3988. 2009-01-28 22:38:00 +00:00
John Resig
a78557472c Focused support of .live(). stopPropagation and stopImmediatePropagation are not supported - and do not do what the use would expect. 2009-01-20 17:25:37 +00:00
Ariel Flesler
735d44f6df jquery event: closes #3843. Some events' timeStamp are wrong on Firefox, we don't rely on the native value anymore. timeStamp reflects object creation, not last event triggered. 2009-01-19 22:20:25 +00:00
John Resig
c2fad371f1 Made the IE frameElement check more explicit. Fixes #3880. 2009-01-17 22:04:23 +00:00
John Resig
b1018cad12 Landed a fix for when a DOM element gets accidentally removed by another live event handler. Thanks to Irae for the patches. Fixed #3820. 2009-01-10 19:57:07 +00:00
John Resig
ec7baf230d Didn't get specific enough with the proxy guid, fixes #3787. 2009-01-09 22:14:48 +00:00
John Resig
d12e8a34e6 Made it so that you can bind a single function to multiple .live() selectors. Additionally, simplified the proxy code to provide a default proxy function.
Fixes #3787.
2009-01-09 22:10:42 +00:00
Ariel Flesler
6898cd6d2a jquery event: Fixes #3538. unbind on many events was failing. 2009-01-08 22:21:16 +00:00
John Resig
69e86d4f98 The triggered flag was being set too early, which was preventing bubbling form working when a
native event existed.
2009-01-05 20:43:24 +00:00
Ariel Flesler
42c99472cc jquery event: Removed a needless if (old code) 2009-01-05 13:31:21 +00:00
John Resig
d1146aa7bf .live("div div") was failing due to the extra space in the selector (which conflicted with multiple event binding in .bind). 2009-01-04 23:58:43 +00:00
Ariel Flesler
9472728bce jquery event: event.stopImmediatePropagation() stops live handlers as well. 2009-01-04 22:32:18 +00:00
Ariel Flesler
303ad32c74 jquery event: Misc, removed a commented line from last commit. 2009-01-02 23:44:06 +00:00
Ariel Flesler
b2552e6ea3 jquery event: Now using an internal argument to detect if bubbling on $.event.trigger. The other would fail when it receives an event object with target. Also, the target isn't nulled anymore.
In addition, there was a lot of code running O(n) during bubbling while not needed.
2009-01-02 23:07:16 +00:00
Ariel Flesler
989e3f61f7 jquery event: closes #3772. The extra function on $.event.trigger isn't supported anymore. 2009-01-02 22:23:52 +00:00
Ariel Flesler
c7a14f1391 jquery event: event.timeStamp wasn't being created when passing just the type to the constructor.
Misc: Simplified the readyList execution code.
2008-12-31 03:36:51 +00:00
Ariel Flesler
c0446c70d5 jquery event:
* event objects have isDefaultPrevented, isPropagationStopped and isImmediatePropagationStopped methods.
* Removed donative and dohandlers from $.trigger
* event.result carries the last returned data from a handler(not undefined).
* $.trigger doesn't keep bubbling if stopPropagation() is called.
* Same event object is used all along for global trigger
* Fixed the bug where target doesn't change when triggering on many elements.
* The data array on $.trigger was accumulating objects as it bubbles.
testrunner: adding more tests
2008-12-31 02:58:13 +00:00
Ariel Flesler
0a846e5be6 jquery event: removed the argument dohandlers from $.trigger. Uses another approach. 2008-12-30 23:29:14 +00:00
John Resig
4f7441910f Made sure that return false works in .live() along with the event object being passed in as the first argument. 2008-12-30 20:45:33 +00:00
Ariel Flesler
4f99e793fa jquery event: jQuery.Event can be instantiated without the 'new' keyword. 2008-12-29 21:57:29 +00:00
Ariel Flesler
4ca4ce52f7 jquery event: Closes #3662. Adds a jQuery.Event class. Makes trigger and fix simpler. Adds currentTarget attribute to event objects. Event object isn't passed as part of data. 2008-12-25 21:44:54 +00:00
John Resig
77477d5634 Disabled native event triggering (and, thus, bubbling) for global events. 2008-12-22 14:47:34 +00:00
John Resig
c03a280155 Added a new liveQuery/event delegation hybrid method: .live and .die. Easily adapts event delegation to the jQuery style. $("div").live("click", fn); $("div > #foo").live("submit", fn); $("div").die("click"); 2008-12-22 04:59:34 +00:00
John Resig
25885e07b2 Added support for bubbling triggered events. 2008-12-22 01:57:06 +00:00
John Resig
b850ab2b8e Added the new jQuery.support object and removed all uses of jQuery.browser from within jQuery itself (while simultaneously deprecating the use of jQuery.browser). 2008-12-21 21:22:44 +00:00
John Resig
80a6a91347 Fixed a problem with multi-namespaced events not targetting the correct functions for execution. 2008-12-19 06:49:44 +00:00
John Resig
0935f4a0b1 Removing remaining strict-mode warnings. 2008-12-19 04:36:28 +00:00
John Resig
77344f4c50 Added support for multiple-namespaced events (in bind, trigger, and unbind). 2008-12-19 04:34:12 +00:00
John Resig
4c1e12e889 Simplifying the DOM ready code, no longer attempting to handle stylesheet loading. Closes #2614. 2008-12-19 04:29:48 +00:00
John Resig
ab551c2b14 Standardized the type checks across core. isFunction and isArray now use Object.prototype.toString to verify the type, .constructor use was removed in favor of typeof, typeof checks now use ===, undefined checks use === undefined. All of this is outlined in the new style guidelines: http://docs.jquery.com/JQuery_Core_Style_Guidelines#Type_Checks. Fixes bug #3618. 2008-11-17 16:32:05 +00:00
John Resig
3b1cf91fa4 Landed the patch, by Diego, that 1) Removes browser sniffing from the ready code and 2) Provides some form of fallback DOM Ready for Iframes in IE. Closes #2614. 2008-11-12 13:18:47 +00:00
Ariel Flesler
ad54d14ae5 jquery event: extra for #3498. Using the new mouse(enter|leave) shortcuts in $.fn.hover. 2008-10-22 10:06:54 +00:00
Ariel Flesler
69cbcf8637 jquery event: closes #3498, adding $.fn.mouseenter & $.fn.mouseleave. 2008-10-21 01:49:11 +00:00
Ariel Flesler
aa9236e5ea jquery event: closes #3355. Added stopImmediatePropagation() to events. 2008-10-18 22:46:04 +00:00
Ariel Flesler
31293063fa jquery event: closes #3127. jQuery.event.special built-in methods were optimized. The mouse(enter|leave) special case is only added for non-IE browsers.Thanks to Mike Helgeson for his help. 2008-07-28 18:31:25 +00:00
Ariel Flesler
b36fe4686c jquery event: closes #3112. It wasn't possible to bind 'data' to special events. 2008-07-09 21:38:28 +00:00
Ariel Flesler
112f7b15ae jquery event: Optimization to global unbinding on window unload. Thanks Mike Helgeson. 2008-07-01 02:50:38 +00:00
Ariel Flesler
cf78e396db jquery event: closes #3107. Optimization to global event triggering. Thanks Mike Helgeson. 2008-07-01 02:25:55 +00:00
Ariel Flesler
18d3e75945 jquery event: fixed a typo in a comment. 2008-06-27 14:17:28 +00:00
Ariel Flesler
abb055bb49 jquery event: caching the props array and fixing the loop that goes thru it. It was accessing an invalid index. 2008-05-28 20:43:13 +00:00
Ariel Flesler
3f5ff3097c jquery: removing unnecessary trailing and leading spaces & tabs. 2008-05-13 01:45:58 +00:00
Ariel Flesler
20a7bff401 jquery event & fx: tidying some comments. 2008-05-13 01:42:35 +00:00
Ariel Flesler
99101e02f9 jquery fx & event: replaced the use of .apply(), where .call() could had been used. 2008-05-12 19:45:02 +00:00
Ariel Flesler
ca73ba5668 jquery event: removing 3 unnecessary lines since the addition of $.event.proxy. 2008-05-08 16:10:47 +00:00
Brandon Aaron
4b970deacd Making sure originalTarget gets copied over from the original event object 2008-05-07 13:21:16 +00:00
Ariel Flesler
17b1e407d1 mainly made the code shorter:
- removed some needless if's
- replace multiple "var x" for one, comma separated declaration.
- added a local fn called now() for the (new Date)s
- fixed the indentation of a block, and a typo in a comment.
- used fn instead of prototype where possible
- jquery fx: exposed the speeds hash as jQuery.fx.speeds.

Also fixed (again) line endings
2008-04-29 23:34:50 +00:00
Ariel Flesler
aaff17be42 jquery event: from #2249, adding $.event.proxy to link event handlers, and implementing it on $.event.add, $.fn._toggle and $.fn.one.
It also fixes a bug in $.fn.one that was unbinding ALL the existing handlers.
2008-04-29 22:06:54 +00:00
Ariel Flesler
08836acc30 jquery event: adding some whitespaces to the last change. 2008-04-29 21:37:41 +00:00
Ariel Flesler
c3cbc5bf98 jquery event: jQuery.toggle can accept more than 2 functions, closes #2378 2008-04-29 21:35:35 +00:00
Brandon Aaron
f3f3238c53 jQuery.event.fix performance boost. An example: click event was previously ~3ms and is now < 1ms. jQuery.event.trigger also got another small boost in performance. 2008-04-28 21:09:27 +00:00
Brandon Aaron
b84b997ea4 Prevent a single event object from being fixed more than once 2008-04-27 23:08:31 +00:00
Brandon Aaron
77bb2c505f Optimization for jQuery.event.fix ... don't send fake event through jQuery.event.fix 2008-04-27 20:37:58 +00:00
Ariel Flesler
25f9974cee jquery core: simplified the code using the new jQuery.makeArray from [5314] where possible. 2008-04-24 21:46:22 +00:00
Brandon Aaron
2efd0b4cc5 Fixed regression with 5276 where return false in first handler of multiple handlers was ignored. And 5276 log message says 200% but I meant 20%. 2008-04-23 18:57:17 +00:00
Jörn Zaefferer
32b1cb3a5c jquery.event: Patch for #2708 2008-04-22 21:59:40 +00:00
Brandon Aaron
6d28ebff85 Some small optimizations to the event module. jQuery.event.trigger over 200% faster in IE and less code. Thanks in large to Ariel Flesler. 2008-04-22 05:23:55 +00:00
Brandon Aaron
5d033dba02 Trigger onclick handlers of links 2008-04-21 20:39:17 +00:00
Scott González
75cb0d8d05 Fixed .unbind('.namespace'). 2008-02-05 19:32:00 +00:00
John Resig
703e89ba30 Added support for .unbind(".test") to unbind all namespaced events on an element. 2008-02-03 04:33:11 +00:00
John Resig
77da94552e Added $().data(), $().removeData(), and .bind("click!"). .data() and .removeData() handle namespaced data, .data() triggers a "set-KEY" event on all modified elements, and .bind("click!") only triggers a click (and no namespaced events). 2008-02-03 04:05:24 +00:00
John Resig
709df93304 Added a fix for bug #2140. Opera doesn't like concating null or undefined values. 2008-01-14 18:46:44 +00:00
Yehuda Katz
87d6bcec31 Fixes bug with charCode, bad 'var' and missing semicolon 2007-12-28 19:08:36 +00:00
Brandon Aaron
c73eadf599 Fixed memory leak in IE with non-native event types 2007-12-21 04:53:33 +00:00
Brandon Aaron
fde3d616ac Removed check to prevent event from being fixed twice. Unfortunately, in IE this is sometimes necessary with its global event object. Binding both a mousedown and mousemove event is an example. 2007-12-21 02:11:26 +00:00
Brandon Aaron
bdd6aca209 Fixing #2081 2007-12-20 19:31:02 +00:00
David Serduke
0419455473 Changed the $(document).ready() code to try and solve some problems in Safari, Opera, and IE. 2007-12-20 06:00:01 +00:00
Brandon Aaron
a7dfbb55d9 Short-circuit jQuery.event.fix if it has already fixed the current event object. 2007-12-19 18:35:58 +00:00
David Serduke
3bb82a34de Second part of the fix for #2071. An empty string "" was being sent to .bind() and when the events were being cleared it went in to an infinite recursive loop till memory was out. The test was !types in the function and changing it to types == undefined fixed the error. 2007-12-19 01:48:05 +00:00
David Serduke
1d7b7b94ef Changed CRLF end of lines to just LF. Other than that there were no changes in this commit. Try svn diff -x --ignore-eol-style -r 4224:4225 to see that. 2007-12-19 01:10:20 +00:00
Richard Worth
76c1889e22 Fixed #1887 - trigger fails if extra is not a function 2007-12-18 03:13:39 +00:00
Brandon Aaron
d1b9ad3cdb Fixed #2069. The ready helper and shortcuts act the same. You can also still bind, unbind and trigger the ready event on the document element but doing so follows the events API unlike the ready helper method. 2007-12-17 20:22:53 +00:00
Brandon Aaron
45e4a52cdd Cleaned up mouseenter and mouseleave special events 2007-12-16 22:18:35 +00:00
David Serduke
859aa6c9df Changed window.frameElement to window == top because of some access denied errors when the iframe wasn't same origin. 2007-12-16 10:33:38 +00:00
David Serduke
97e98591aa Added code so an iframe in IE won't count on doScroll to determine if the dom is ready. We will probably have to do more investigation on a better (and consistant) method for inside an iframe in IE. 2007-12-16 10:08:53 +00:00
Brandon Aaron
7a6978b324 Renaming variables to be more consistent 2007-12-16 04:09:53 +00:00
David Serduke
feb9051c0e Fixed #1781 for warnings created on load by FF javascript.options.strict == true. 2007-12-16 01:03:50 +00:00
Brandon Aaron
b264f789b9 new special events api, ready is now a first class event that you can use bind, unbind or the ready helper, two new events: mouseenter and mouseleave, the hover helper method now uses mouseenter and mouseleave, bind and unbind can now take a space sperated list of event types 2007-12-15 05:55:33 +00:00
Brandon Aaron
540f9304a7 Fix for #2032 2007-12-11 03:17:44 +00:00
Brandon Aaron
91f1299f68 Fix for #1486. Prevent IE from throwing an error when triggering focus on hidden input. 2007-12-08 02:54:09 +00:00
David Serduke
ffbedf0262 Fixed #1039 and #1733 by going through the core API and making them text node and comment node safe. 2007-12-07 01:52:21 +00:00
David Serduke
66fbbec3bb Fixed [1993] although it actually wasn't a bug in the core but rather a misunderstanding of how the extra function was supposed to work in jQuery.event.trigger(). That said, it seems more useful and robust for the code to work the way the ticket author thought it should work so this change was made.
Now, if anything is returned from the extra function it will overwrite the return value of the event handlers.  This should only effect custom events unless someone had an extra function that returned a value other than false which would have been ignored before.
2007-12-03 21:41:10 +00:00
David Serduke
3ae5fbc16a Fixed #1701 by passing through the arguments as suggested. 2007-11-28 22:23:40 +00:00
David Serduke
b26da08821 Fixed #1970 by returning true instead of false when the mouse moves over a sub-element. The side effect is the event will not stop default behavior and will propagate which it didn't used to. I could find no compelling reason to stop those things from happening. 2007-11-27 19:20:36 +00:00
Brandon Aaron
e6a481e533 Fix for #1933 2007-11-19 16:15:51 +00:00
Brandon Aaron
ab96367f12 Fix for #1925 and removed some unnecessary browser sniffing 2007-11-14 21:55:45 +00:00
Brandon Aaron
ee52c89dc9 Fix for #1911 2007-11-14 15:06:48 +00:00
John Resig
a2fc65fd32 From a suggestion by Diego, moved the jQuery.ready() call outside of the try{}catch() block for IE/Safari DOM Ready. 2007-10-15 17:55:54 +00:00
Brandon Aaron
a5f95c88c1 Fix normalization of pageX and pageY event properties in IE (#1571). Thanks wizzud. 2007-10-06 21:00:37 +00:00
Brandon Aaron
92aac3abd6 Fixes memory leaks relating to events in IE with page unload and with jQuery methods remove, html and empty (#1610, #1618, #1697 and #1731). Also re-worked variable names to be more consistent with the core. 2007-10-06 17:04:20 +00:00
John Resig
beebbf8ba4 Safari 2 was having problems with the syntax used for the ready handling. 2007-10-01 14:14:09 +00:00
John Resig
1344a7fd50 Fixed the attribution for the DOM Ready fix - the previously used changes weren't significant. 2007-09-27 20:49:30 +00:00
Brandon Aaron
ee2efbe1e3 Fix for #1153 2007-09-27 18:09:23 +00:00
John Resig
6e8a8c5359 Converted jQuery to use the new DOM Ready technique (by checking scroll). A single setTimeout loop is used for both IE and Safari now. Fixex bugs #1320 and #1561. 2007-09-27 15:23:07 +00:00
John Resig
82eccdfcd0 Make sure that the right event type is always triggered (was causing problems with UI's event triggering). 2007-09-14 23:58:51 +00:00
John Resig
3a4e1233aa Landing the new expando management code. Completely overhauls how data is associated with elements.
Plugins will be most interested in:
- jQuery.data(elem) -> Unique ID for the element
- jQuery.data(elem, name) -> Named data store for the element
- jQuery.data(elem, name, value) -> Saves a value to the named data store
- jQuery.removeData(elem) -> Remove the expando and the complete data store
- jQuery.removeData(elem, name) -> Removes just this one named data store

jQuery's .remove() and .empty() automatically clean up after themselves. Once an element leaves a DOM document their events are no longer intact. Thus, statements like so:
{{{
  $("#foo").remove().appendTo("#bar");
}}}
should be written like so:
{{{
  $("#foo").appendTo("#bar");
}}}
in order to avoid losing the bound events.
2007-09-08 23:31:23 +00:00
John Resig
b4e23b5af0 Reorganzing the jQuery source (first phase). 2007-09-08 12:42:32 +00:00