Commit graph

781 commits

Author SHA1 Message Date
scottjehl
b3a8230638 This commit includes simplifications to the hashchange event handling & changePage logic, which results in a few bug fixes and removal of some previous limitations. Details:
- jquery.mobile.core.js  no longer creates pages from every page and dialog in the DOM automatically at domready. Instead, pages are created as they are referenced via changePage, which can speed up pageload in multi-page documents, and means local "dialogs" referenced via data-rel="dialog" no longer need a data-role="dialog" attribute when served.

- in changePage, "from" is now allowed to be undefined. This simplifies the logic involved in showing the first page, which never had a "from" page, and previously needed a custom pageChange workaround to accommodate that.

- The pageshow event is no longer used as a callback for returning false and preventing the $.mobile.activePage from being set to the newly shown page. In other words, a page always becomes $.mobile.activePage once its shown now (the only reason this was optional before was because of a dialog restriction that's no longer true)

- the hashchange event logic for showing a particular page is now greatly simplified. It either shows the page referenced in location.hash, or if there's no hash it changes to the first page in the dom. This means every pageshow (including the first one) now uses pageChange internally.

- the hashchange event listener is no longer disabled when ajaxEnabled == false. Doing this before prevented local non-ajax page navigation from working properly. To disable hashchange listening, use $.mobile.urlHistory.listeningEnabled. We might consider defining (or moving) this on the $.mobile hash later as well for easier access.

- The internal var $.mobile.startPage is now $.mobile.firstPage, because it's not necessarily the page you started on, but merely a reference to the first "page" in the dom.

- Back buttons are auto-added to every page after the first one you first visit (this includes generated pages, such as those in a multipage document or nested listviews). Keep in mind that a "back" button does not take the place of a standard "home" link, and when building an app with jQuery Mobile, it's good to make use of both (particularly on deep-linked pages). Fixes #908
2011-01-31 17:05:57 -05:00
John Bender
591593dd49 misplaced semicolon 2011-01-31 00:13:01 -08:00
adammessinger
cb4f540645 Fixes #900 - buttons with rel attribute set to external don't show active state 2011-01-30 23:43:53 -08:00
John Bender
8b5f083974 whitespace and missing semicolon in setTimeout for non webkit animationComplete 2011-01-30 22:03:30 -08:00
Alex Kovar
4830ac9e9b tweak for animationComplete 2011-01-30 23:00:51 -06:00
Alex Kovar
62af59983f made $.fn.animationComplete behave more consistently between webkit/non-webkit. Closes gh-918 2011-01-30 17:06:33 -06:00
scottjehl
2f9d1bce33 position loading message either center screen (if scrollTop supported), above active clicked button (if defined), or 100px off the top. Fixes #892 2011-01-30 13:34:45 -05:00
John Bender
badefe1ee1 whitespace and missing semicolon fix 2011-01-30 00:19:15 -08:00
scottjehl
29fbc9c3c5 removed the Position plugin and modified selectmenu to position its menu without it. Removes off about 3-4kb after minify. 2011-01-29 07:15:40 -08:00
scottjehl
58cb69788c bound slider drag event handling to touch and mouse events, which allows us to support Opera Mobile and others. Fixes #852 2011-01-28 15:47:03 -08:00
scottjehl
b4c8e2f98e moved search input clear buttons over to "tap" event 2011-01-28 15:20:56 -08:00
scottjehl
1b72203096 checks and radios no longer check when a scroll starts on top of them. Fixes #893 2011-01-28 14:39:58 -08:00
scottjehl
b10c5c04c2 don't destroy dialogs on close. Now same-page dialogs can be reopened after close, and selects don't need to unbind dialog change events to override the destroy. 2011-01-28 14:30:24 -08:00
John Bender
e5fd56985c added global native select configuration, docs to follow. Also corrected selector error when reloading a lib in tests 2011-01-27 23:20:57 -08:00
John Bender
1afb3a08f0 whitespace corrections in core 2011-01-27 22:53:17 -08:00
John Bender
b1d356bfd7 Merge branch 'nativeselectmenu' 2011-01-27 09:50:40 -08:00
Jesse Streb
d3077b491c [455] Am now setting the min-height of a page so that the address bar can always be hidden on a silent scroll. This helps our transitions feel smoother as the page does not jump down if the page is not taller then 100% of the window. On orientation change we also update this value. 2011-01-27 12:28:04 -05:00
Jesse Streb
378fb51225 [#455] For the transitions we now have overflow: hidden in order to limit the flickering. We always scroll to the top before we start our transitions in order to make it scroll. The CSS changed to have overflow: hidden during transitions and have a height that is larger enough to keep the address bar hidden. 2011-01-27 12:28:04 -05:00
scottjehl
e2c66fad49 Merge remote branch 'origin/master' 2011-01-26 22:15:10 -08:00
John Bender
d94e25acd6 merge from origin selectmenu fixes 2011-01-26 21:35:00 -08:00
John Bender
b81248f238 fixed android select menu failure with a delay. I'm doubtful that this is the best solution to the problem but the cause was the click being passed through to the screen or the select menu itself a split second after opening. Open to alternatives. Fixes #873 2011-01-26 21:20:40 -08:00
scottjehl
9a492d06fd allow form data to be passed to $.mobile.changePage as a query string or object. 2011-01-26 22:04:36 -05:00
scottjehl
61bee4e276 fixed issue with select menus not opening again after you close them. 2011-01-26 21:02:08 -05:00
scottjehl
d1976fa265 removed click handler on back button - used data-rel='back' instead. 2011-01-26 18:57:14 -05:00
scottjehl
fa2b1903de only add a back button when there's a history entry to return to. 2011-01-26 17:56:20 -05:00
Kin Blas
63a82967fa Temporary workaround for Issue 785 - jQM text input forces use of iOS auto-correction.
- Added code to enhanceControls() that sets the autocorrect and autocomplete attributes on all inputs of type="text" to "off". This basically disables the use of autocorrection on iOS.

- Modified the code in enhanceControls() to cache the form controls query to reduce the number of times we search for controls in the current page.
2011-01-26 14:31:47 -08:00
scottjehl
700ca984bb finished up some navigation changes. Also added and documented a data-rel="back" attribute, which can be applied to links to enhance them to mimica the browser's back button (good for closing dialogs). In these changes, dialogs now create a history hash entry, and the back button works better for closing dialogs. Also, nested list deep-linking is restored after a recent regression. Tests in Navigation and Listview are passing. Fixes #885. Fixes #866. 2011-01-26 14:38:17 -05:00
scottjehl
2c6cc45ad0 incomplete, but close to fixing the dialog-create-history entry piece. Also includes fix for nested-listview deep linking regression. 2011-01-26 14:27:10 -05:00
John Bender
244e46b8ed data-native attribute check for native select menus Fixes #847 2011-01-25 23:12:20 -08:00
John Bender
aa234961cc whitespace correction on rebase fix 2011-01-25 22:50:55 -08:00
scottjehl
0cdf9df11c added option for useNativeMenu. Should be updated so, when set, the custom menu markup is never created. 2011-01-25 22:43:53 -08:00
scottjehl
9ed13f86c8 hashchange event handler should still load the first url, even if Ajax is disabled. Fixes #879 2011-01-25 22:39:29 -05:00
John Bender
bc473f48a7 comments for added clarity on bindings 2011-01-24 23:55:52 -08:00
John Bender
0cdd401f3a removed commented code from refactor 2011-01-24 23:54:22 -08:00
John Bender
23807769ac refactor off slider to move value retrieval to closure for _create method 2011-01-24 23:53:17 -08:00
John Bender
442e4b19b0 updated slider refresh function with an extra param for preventing validation on its input Fixes #468 2011-01-24 23:38:50 -08:00
scottjehl
3df24fab6d fixed a regression in safari where images wouldn't load properly because base was being set after html was appended. 2011-01-25 00:29:19 -05:00
scottjehl
5d5336d8b0 fixed firefox regression. check if base is set/supported before setting. 2011-01-24 23:56:53 -05:00
scottjehl
0ba9acfc33 added support for URL updating via a preset data-url on the page div when it is sent from the server.
If data-url is set on a page div when it returns from the server, it's value will be used to replace the url in the hash, and as the base url for future requests if it adds additional segments (such as a trailing slash). This will enable developers to work around the limitation of directory links requiring a trailing slash, and will also allow developers to specify a new url after a redirect occurs (such as after a login). Fixes #867
2011-01-24 19:35:45 -05:00
scottjehl
a5b8e42fc1 updated jQuery to 1.5rc1. This update includes Nokia support in jQuery core, which is getting closer in JQM itself. 2011-01-24 17:56:32 -05:00
scottjehl
80b0d9ef4b Merge branch 'master' of github.com:jquery/jquery-mobile 2011-01-24 13:05:04 -05:00
scottjehl
4a9b374eea make sure change events fire whenever custom checks/radios change. 2011-01-24 13:04:41 -05:00
Kin Blas
1dad50e536 Fix for the header/footer positioning problem, mentioned in issue 58, that is caused by the browser url/nav bar scrolling offscreen due to the silentScroll() call triggered when the document is first loaded.
- Modified silentScroll() to trigger a "silentscroll" event. This was necessary because programatically scrolling the window does not generate "scroll" events.

- Got rid of the hideAfterDelay() function that was not used.

- Added startShowTimer() and clearShowTimer() functions.

- Added event handlers for "resize" and "silentscroll" events. This causes headers/footers to be positioned properly as "scroll" and "orientationchange" events cause the visual viewport to resize.

Issues this fix causes:

- On some Android platforms, clicking in textfields/textareas trigger a "resize" event. This causes the footer to show up in the minimized visual viewport, right above the keyboard.
2011-01-24 07:11:19 -08:00
scottjehl
977e075ece improved tap event and added a quick event logger page so we can get these neglected events in order. 2011-01-23 19:34:17 -05:00
scottjehl
2e6a396278 added ajaxEnabled option. ajaxLinksEnabled and ajaxFormsEnabled are deprecated and will be removed by 1.0. Fixes #851 2011-01-23 19:03:35 -05:00
scottjehl
2ebf659fbd made sure linking to the same page from within a dialog closes the dialog. 2011-01-23 18:26:48 -05:00
scottjehl
be8eb3d0c6 deprecated data-back attribute on links in favor of data-direction="reverse". Updated docs and relevant demos. 2011-01-23 18:12:46 -05:00
scottjehl
9b57c46349 Refactored urlStack and updated dialog and page plugins to match. jQuery Mobile's internal history now attempts to follow the history menu when urls change from hashchange, even for changes that go multiple steps forward or back. The internal history stack is now pruned based on whether a user goes back and then changes direction, whereas before a back-button click would result in a pop off the history. Instead we now maintain an active index number in the history stack, which allows us to maintain references to transitions that are saved on pages reached through clicking the forward button as well. This fixes #636.
In the process, some other small changes should be noted:
urlStack is now urlHistory, a hash of methods and properties used for history stack management (stack, activeIndex, getActive, getPrev, getNext, addNew, clearForward, and listening Enabled). All these are documented inline and exposed on $.mobile.urlHistory (I'm not sure these will be publicly documented, but just exposed internally for plugins for now).

$.changePage has two argument changes: the "back" argument is now called "reverse"; this results in no change from an end-user standpoint, but reflects the fact that it only reverses the direction of a transition without affecting the internal history stack, and second, a new argument at the end defines whether changePage was called from a hashChange which makes that url open to history menu guessing.
2011-01-23 17:33:36 -05:00
John Bender
b671753039 moved page above core in the makefile, build xml, and manifest under js. Fixes #619 2011-01-22 22:31:16 -08:00
scottjehl
9e4b0a484c Overhauled path object and exposed it and the base object via $.mobile. Form and Link handlers now use the path methods internally. Unit tests adjusted, but more are needed to fully cover the path and base propeties and methods. Fixes #566. 2011-01-22 17:42:07 -05:00
scottjehl
6fb50fd289 use inArray instead of indexOf. Fixes #828 2011-01-22 14:04:04 -05:00
scottjehl
fbb2fc2c60 lengthened timer for Android, and added a check to let through the same event type for double-taps. 2011-01-21 18:29:28 -05:00
scottjehl
aa0a61c407 followup on previous commit. made sure devices with both touch and mouse events work with either input type. Also fixed regression with radio inputs. 2011-01-21 18:13:02 -05:00
scottjehl
38c1c24e5d moved check/uncheck event on label to touchend/mouseup. Fixes #753 2011-01-21 17:45:22 -05:00
scottjehl
a1cb31a2c7 navbar removes active state but doesn't apply new one. Now it does. Useful in js-generated links. Fixes #669 2011-01-21 16:20:33 -05:00
scottjehl
37f9680c0f only the first image should be an icon/thumb. Fixes #699 2011-01-21 15:33:40 -05:00
John Bender
e5d2bf1b66 added target check to $.mobile.isExternalLink 2011-01-20 23:05:37 -08:00
John Bender
ffafa78e62 added tests for external links in dialogs, small refactor for dialogClickHandler function 2011-01-20 22:20:16 -08:00
scottjehl
52f86f2f9a make sure first textnode of li is used in listview title, regardless of newline chars. Test included. Fixes #715 2011-01-20 17:48:44 -05:00
scottjehl
bfa6f6a3af Merge remote branch 'origin/master' 2011-01-20 16:28:28 -05:00
scottjehl
48b69b7a71 loading message opens above offset of active button, when possible. This makes it visible on devices that don't support scrollTop (webOS, etc) 2011-01-20 16:28:23 -05:00
Kin Blas
e4042266fb Fix for issue 841 - Persistent footers persist even when going to other pages that don't have footers or don't have footers with the same data-id.
This was a regression I caused with my previous checkin. The fix is to simply null out stickyFooter in the pagebeforeshow callback.
2011-01-20 12:51:28 -08:00
Kin Blas
161f5e6ae3 Removed jquery.js from js/index.php and updated all html doc/experiments/test files that incuded "js/" so that they also include jquery.js manually.
This makes our include model match the include model on the CDN, and allows devs to make use of mobileinit for debugging some of the samples since that must be set up after jquery.js, but before jquery-mobile.
2011-01-20 11:26:12 -08:00
John Bender
8a5060de13 fixed issue with dialog click handler breaking transitions on external links Fixes #642 2011-01-19 23:48:30 -08:00
John Bender
dcf9a19c31 whitespace issues in mobile core 2011-01-19 21:43:36 -08:00
scottjehl
f85e4c916b small workaround to get media query function to work on Nokia 2011-01-19 16:35:15 -05:00
Kin Blas
02c9264f0d Fix for issue 613 - Jquery Mobile ignores original 'base' tag defined in HTML
- Fixed baseTagTest() in jquery.mobile.support.js, so that it uses any pre-existing base tag for testing. This fixes the bug on Webkit (Safari) where the relative paths for links were being resolved/expressed with the document path instead of the original base path.

- Modified the base code in jquery.mobile.navigation.js so that it uses the initial path of a pre-existing base tag, instead of always using the document path. This means that a document with a URL such as:

    http://foo.com/a/b/c#docs/pages/index.html

That uses a base tag like:

    <base href="http://foo.com/bar/">

Will resolve properly:

    http://foo.com/bar/docs/pages/index.html

so the mobile page gets loaded properly.

- Reduced the path.get() function down to a couple of regexp replace() calls.
2011-01-18 09:18:22 -08:00
John Bender
b9bfa41846 poorly written comment 2011-01-15 23:36:59 -08:00
John Bender
f850311935 force previously created dialog for long menus. Fixes #807 2011-01-15 22:47:44 -08:00
John Bender
d4f4d474d1 whitespace cleanup for mobile forms select 2011-01-15 22:44:00 -08:00
Kin Blas
fde3aaaad5 Merge branch 'master' of https://github.com/jquery/jquery-mobile 2011-01-14 13:40:04 -08:00
Kin Blas
cd344f0440 Fix for Issue 811 - All resolution breakpoint classes added to <html> element, throws off label and form element flow on narrow screens.
- We were firing off our fake orientationchange event before the viewport meta tag is injected. This causes us to get the default document width for the device which is much wider than the actual device-width. We now fire off the event after the dom ready event fires.
2011-01-14 13:37:47 -08:00
maggiewachs
b6ec29a7e5 Fixed bug 676 where the switch toggle (slider) wasn't updating on select change:
https://github.com/jquery/jquery-mobile/issues/labels/5%20-%20Critical#issue/676
2011-01-14 16:06:18 -05:00
scottjehl
7cf5aea8e3 fixed up those busted select menu headers. Fixes #810 2011-01-14 15:49:21 -05:00
scottjehl
3b92410ff3 some additional changes to make scrolling from a select button work ok. 2011-01-14 15:16:03 -05:00
scottjehl
288fe45ff1 added option for useNativeMenu. Should be updated so, when set, the custom menu markup is never created. 2011-01-14 13:02:24 -05:00
Pavel Karoukin
5b4c23b67d add data-url to dialog 'pages' as well 2011-01-14 23:44:25 +08:00
Pavel Karoukin
794adfeca0 Click on form in dialog prevents exit from dialog 2011-01-14 23:44:24 +08:00
scottjehl
87c7b57da9 allow scroll to work when touch start begins on a select button. Fixes #804 2011-01-14 10:35:26 -05:00
Jonathan Hinkle
0413542753 rename selectmenu's exposed "options" to "optionElems" to avoid conflict with existing variable containing configuration options 2011-01-14 22:48:51 +08:00
ehynds
9e6a3df6b1 make sure the options cache is updated after a refresh, and that the click handler reads from this cache. 2011-01-12 22:01:50 +08:00
Jesse Streb
924c2c3e9b updated select to no longer wrap the input element as it is already jQuery object. Thanks ehynds. 2011-01-12 08:01:37 +08:00
Jesse Streb
5b238ea1ce https://github.com/jquery/jquery-mobile/issues#issue/578 Updated to use the selector that Scott suggested in order to make checkboxes not dissappear. One issue I noticed is that the page still transitions to the 'new' page even though it is really the same page. I have a fix for this that will post in a separate drop. 2011-01-12 08:01:36 +08:00
D. Elmo Peele
1a21b0581c Avoid triggering a 'tap' event if the event target on touchStop differs from the original touchStart target. 2011-01-12 07:47:17 +08:00
Kin Blas
5617d0c8d3 Merge branch 'delay_duplicateCachedPage' of https://github.com/medovob/jquery-mobile into pull662
Had to fix merge conflicts in:
	js/jquery.mobile.navigation.js
2011-01-11 14:12:07 -08:00
ehynds
95819c8c60 same fix in a few other places 2011-01-12 05:30:56 +08:00
ehynds
b71cc32d78 "this" in this context is already a jquery object 2011-01-12 05:30:56 +08:00
scottjehl
44d6064fb6 Merge branch 'no_enhance_for_hidden' of https://github.com/hynkle/jquery-mobile into hynkle-no_enhance_for_hidden 2011-01-11 13:42:30 -05:00
Kin Blas
8a70cdb3de Initial patch from pull 672 had incorrect check for backbtn data value. Changed it from $this.data("backbtn") === false to $this.data("backbtn") !== false to match the original logic that was in place prior to the patch.
Original patch missed a nobackbtn reference in jquery.mobile.forms.select.js.
2011-01-11 09:34:50 -08:00
Kin Blas
8050fb0d01 Merge branch 'master' of https://github.com/walkingeyerobot/jquery-mobile into pull672 2011-01-11 09:04:32 -08:00
John Bender
96d941ebe9 added the ability to disable ajax forms with data-ajax=false, attribute up for debate, Fixes #519 2011-01-08 23:47:07 -08:00
Jonathan Hinkle
6b799dad71 added 'hidden' to the types of inputs not to be enhanced by textinput 2011-01-07 12:33:59 -05:00
Kin Blas
c910f4b01f Fix for issues:
470 - Multiple Footers when using data-position=fixed and data-id=[someid]

773 - The fixHeaderFooter pagebeforeshow live function is not triggered for the initial page shown

- Removed the findStickyFooter() function.

- Reworked the logic in the pagebeforeshow live function. We now add a ui-sticky-footer class to the sticky footer element. This will guarantee that we find the sticky footer if it already exists. We may at some point want to consider the use of ids on the sticky footers so that we don't have to crawl the entire document.

- Moved the live pagebeforeshow and pageshow calls outside of the DOMReady function so that they get registered as soon as the plugin is loaded. This guarantees that they will be triggered when the core plugin's DOMReady function fires.

- This fix makes issue/pull-request 765 obsolete.
2011-01-07 01:07:22 -08:00
maggiewachs
926982b4f0 Fixed bug 595, where form elements were not properly inheriting the theme. Form controls need to be enhanced after the page containers so they'll pick up on the containers' theme classes. 2011-01-05 11:55:41 -05:00
John Bender
3a9652c9cc slider switch keyboard access tests Fixes #632 2010-12-26 23:09:11 -08:00
John Bender
06b83ad67a slider switch now keyboard enabled 2010-12-26 17:45:25 -08:00
scottjehl
53392bc7ca Merge branch 'issue_723' of https://github.com/ehynds/jquery-mobile into ehynds-issue_723 2010-12-23 14:34:17 -05:00
ehynds
edfafe0c01 if the close icon in a full-page select is clicked on, fire the selectmenu close handler instead of the dialog close handler 2010-12-23 13:19:34 -05:00
scottjehl
e9b076bcc0 Merge branch 'master' of https://github.com/louy/jquery-mobile into louy-master 2010-12-23 09:20:55 -05:00
John Bender
b2d58c1f30 slider keypress tests, comments, and style addition to navigation test page 2010-12-22 23:18:14 -08:00