- Check for existence of the bindings object before attempting to use it. Apparently jQuery core strips off any data bindings of an element before calling teardown on it to remove special event handlers.
- When we switched to virtual mouse events, I just did a straight translation of the code that existed which basically did the collapse/expand on mouseup. In order to factor in scrolling, I needed to move that code into a vclick handler and stopPropagation() and preventDefault() to make sure the button doesn't activate.
- Modified vmouse code so that it uses $.data() instead of $().data() which is significantly faster.
- Modified the navigation and buttonMarkup code so they stop using live(). The vmouse code triggers several events during the touch events, which in turn causes the underlying event code to call $.closest() with the selector used during the live() call to figure out if the event should be handled. This turns out to be very expensive, so instead, we now just bind directly to the document, and walk the DOM manually to figure out if we should handle it. This is much faster since we are avoid triggering multiple nested function calls.
Needed to modify _itemApply() to look for the first image that is the first child of its parent. I may need to tweak this at a later point because the selector is still too general.
* 'master' of github.com:eddiemonge/jquery-mobile:
Fix for issue 1446 - Can't drag slider in 1.0a4.1 (Android 2.1)
Modified _createSubPages() to reduce the number of property lookups and function calls per iteration.
Fix for Issue 1424 - Adding items to listviews on a4.1 is too slow
made sure a couple of variables are locally scoped. Fixes#1403
moved previous strip query tests to tests for cleanHash
removed stripQuery helper to reduce confusion and complexity as striping the query param from a url is much more complex than a hash as it was originally intended for
tests for nested pages/query params
added handling for identical query param href/action on the same page
query param href/actions require absolute path prefixes when no relative path information is contained in the hash
tests for handling query params in makeAbsolute path helper, moved path helper tests to helper test file
handle relative query param links and forms Fixes#1160
removed duplicate current page check in favor of fixing the off by one bug
- Don't bind and unbind our touch listeners dynamically. This gets Android 2.1 into a strange state where it stops dispatching touch events. Instead, we now register our touchmove, touchend and scroll listeners at the same time we register our permanent touchstart listener, we then block and unblock processing in our touch listeners via a flag.
- Some optimizations to speed things up:
- Modified _itemApply() to make use of item.children() and filters. Also got rid of some unused code.
- Convert .each() in refresh() to a loop.
- Cache some $list.jqmData() values so we don't do it for each list item.