Commit graph

254 commits

Author SHA1 Message Date
scottjehl
982b7d4b15 Make navigation feel more responsive through feedback, even though it actually uses the click event again for actual page changes.
- set active state on all button vclick events
- cancelled vclick on slider switch handles so it's not too sticky.
- removed addClass in navigation.js as the first change handles it there.
2011-04-07 14:41:45 -04:00
scottjehl
9a1b2dcb3c changed name of interal function loadComplete to pageChangeComplete 2011-04-07 11:33:04 -04:00
John Bender
05cc415f0c fix for current page links 2011-04-04 23:41:05 -07:00
Kin Blas
d43bbfc52a Switch back to hijacking links on the click event. We'll focus on improving "percieved" visual performance since launching a page load and transitions on vclick opens us up to too many problems:
- Third party click handlers never called.
	- Touch and click target mismatches due markup changes before the click events are generated. (What looks like a double click event)
2011-04-04 10:00:24 -07:00
John Bender
5c37beaa29 activeElement conditional for windows support Fixes #1294 2011-04-02 00:03:37 -07:00
Kin Blas
58369ec943 Added missing comma in var declaration. 2011-04-01 14:05:46 -07:00
Kin Blas
8cd0d2c679 I'm not sure how this happened, but the dataType fix for Issue 991 disappeared between commits 61005944 and 7503f62a.
Adding it back in to fix Issue 1349 - File urls still not working in alpha 4 as shipped.
2011-04-01 13:37:18 -07:00
John Bender
f2525b06de moved attribute call to jqmData call 2011-04-01 02:09:05 -07:00
John Bender
fad90ca99a navigation white space 2011-04-01 01:48:38 -07:00
Kin Blas
ae06612eca Clear our preventClickDefault and stopClickPropagation locals in the live click handler. 2011-03-31 14:39:11 -07:00
Kin Blas
3c69215ed6 Temporary workaround to keep 3rd party onclick handlers functioning. This stuff really needs to be done within the vmouse plugin. 2011-03-31 12:38:36 -07:00
scottjehl
07d20d9991 Merge remote branch 'origin/master' 2011-03-31 13:20:44 -04:00
scottjehl
ae6c2d569f fixed a duplicate check for using markup for page titles when title isn't present. 2011-03-31 13:20:19 -04:00
scottjehl
854885e93d move the pageTitle setter to different function 2011-03-31 12:56:48 -04:00
scottjehl
d8aac11a4f merging unit test addtions for page titles 2011-03-31 12:56:30 -04:00
scottjehl
ac7188e449 merging changes from page-titles branch in regards to a conflict with addNew function arguments 2011-03-31 12:48:46 -04:00
Kin Blas
16bea21a1c Corrected grammar for a comment in my previous checkin. 2011-03-31 09:33:05 -07:00
Kin Blas
0927ddfe3e Merge branch 'master' of https://github.com/jquery/jquery-mobile 2011-03-31 09:22:55 -07:00
Kin Blas
3ce228e3f2 On touch devices, 3rd party code that used href='#' links and onclick handlers weren't working because our live("vclick") link handler in jquery.mobile.navigation.js was calling preventDefault() on the vclick event.
For vclicks dispatched via touchend, calling preventDefault causes mouse clicks to be suppressed. This is why the 3rd party onclick handlers weren't getting triggered. For vclicks dispatched by a real mouse click this isn't a problem.

The fix basically removes the preventDefault() call from the live("vclick") handler and places it in a real live("click") handler. This allows the mouse event to get dispatched and trigger 3rd party click handlers, and still call preventDefault to prevent the link from being followed.
2011-03-31 09:19:05 -07:00
scottjehl
93ddf9d984 Syntax fix with data-ajax attr - also making sure [target] is included in the external link check, and that the pathname is removed properly in IE before prefixing. 2011-03-30 21:17:52 -04:00
Kin Blas
14fbe8b164 Fix for issue 1316 - URL is not properly formed in Firefox
- Checking in scottjehl's suggested selector for the non dynamicBaseTag support case.
2011-03-30 16:15:24 -07:00
John Bender
215aded824 fixed path detection for when linking from embedded pages to file paths Fixes #1305 2011-03-30 01:08:15 -07:00
John Bender
3a758f97fa navigation whitespace 2011-03-30 01:08:15 -07:00
Kin Blas
1f2c7fd537 Merge branch 'master' into fastclick
Resolved Conflicts:
	js/jquery.mobile.navbar.js
2011-03-29 09:03:05 -07:00
John Bender
97783bdbd1 added page tracking to history stack and handling for dialog to dialog transitions in hashchange 2011-03-28 00:41:33 -07:00
jblas@adobe.com
729cda075a Merge branch 'master' into fastclick
Resolved Conflicts:
	js/jquery.mobile.buttonMarkup.js
	js/jquery.mobile.event.js
	js/jquery.mobile.forms.checkboxradio.js
	js/jquery.mobile.forms.select.js
	js/jquery.mobile.listview.js
2011-03-27 21:00:22 -07:00
scottjehl
c50158c837 Just comments, code order, and whitespace, but also confirming: This Fixes #1171, where a page loading error prevents future page loads from working.
Confirmed on this page. Scroll down and click the error message, than another link to navigate elsewhere.
http://jquerymobile.com/test/#docs/pages/docs-pages.html
2011-03-27 12:27:50 -04:00
scottjehl
4a45d8d96b Added pageLoadErrorMessage option. Defaults to "Error Loading Page". Documentation included. Fixes #1258 and Fixes #363 2011-03-27 11:45:03 -04:00
scottjehl
9a4663073d removed default click simulator now that listviews no longer tricker clicks. 2011-03-26 21:29:24 -04:00
Kin Blas
004860c209 Merge branch 'master' of https://github.com/jquery/jquery-mobile 2011-03-25 23:47:32 -07:00
Kin Blas
90e167a4f6 Some "page" data calls were accidentally switched to jqmData(). The widget code actually uses data() so we need to make sure we match.
A couple of data() to jqmData() changes were missed.
2011-03-25 23:44:02 -07:00
John Bender
6089618431 readded fix to return jquery wrapped object from animation complete in both branches 2011-03-25 22:35:19 -07:00
John Bender
4fe0b29a0f Merge branch 'data-namespacing' 2011-03-25 18:46:00 -07:00
scottjehl
7503f62a10 changed our two new custom data helper names to jqmData() and :jqmData() 2011-03-25 17:50:40 -04:00
scottjehl
61005944d3 Added support for the target attribute on forms (such as target="_blank"). When set, the form handler simply allows the native handling to apply. Unlike anchors however, the rel attribute is not allowed on forms. If you're purely looking to submit a single form without ajax, you can use the data-ajax="false" attribute as well. Fixes #952 and docs updates are included 2011-03-24 00:59:42 -04:00
scottjehl
39476d151a added support for data-transition and data-direction on form elements. Fixes #1275 2011-03-24 00:45:15 -04:00
scottjehl
7b0fa3b48c If action attribute is undefined, default to path.get(). Fixes #766 2011-03-24 00:36:24 -04:00
scottjehl
acc771b046 make sure type is not a 0-length string, as it would be if left undefined in the markup. Fixes #766 2011-03-24 00:33:59 -04:00
scottjehl
e6095a357a if type attr is used from method attr, make sure it's lowercase first. Fixes #1280. Still needs a unit test but I'll need to think about how best to do it. 2011-03-24 00:30:26 -04:00
Kin Blas
db89e1f24d Switch find/filter selector calls over to using the new :jqdata() pseudo selector. 2011-03-22 13:31:17 -07:00
Kin Blas
08fa6a2ac8 Got rid of the if/else isExternal check because we need to make sure we check cross domain URLs against isRelExternal. 2011-03-21 10:32:24 -07:00
Kin Blas
2aab30b7a6 Initial changes to allow for cross-domain URLs to be loaded as pages within Phone Gap's web view. I still need to figure out how we're going to set the application URL hash for these cross-domain URLs, and allow for reloading the URL via deep links. 2011-03-18 17:53:06 -07:00
Kin Blas
7f8438e966 Merge branch 'master' into fastclick
Conflicts resolved:
	js/jquery.mobile.forms.select.js
2011-03-18 09:15:01 -07:00
John Bender
63e8f6bfcb resolved merge conflicts and fixed 2 tests 2011-03-15 23:57:17 -07:00
scottjehl
09ffa3aa5f Clarified data-ajax=false on forms. Fixes #1134 2011-03-15 18:49:39 -04:00
adammessinger
2bfdd02a51 Fix for issue #900: buttons with rel attribute set to external don't show active state 2011-03-15 11:30:19 +08:00
Phil Barnes
b740854ae7 Pass null event param for page _trigger beforehide and beforeshow -- Fixes issue #700 2011-03-15 07:41:32 +08:00
scottjehl
ddcacc1482 changed from ternary to || 2011-03-14 19:34:16 -04:00
scottjehl
330f866143 Merge branch 'bug_733' of https://github.com/eddiemonge/jquery-mobile into eddiemonge-bug_733 2011-03-14 19:31:15 -04:00
Kin Blas
dbcf4d0373 Merge branch 'master' into fastclick 2011-03-14 11:38:00 -07:00
scottjehl
c4685ac14f replace the current path in the url when checking if it's a null # href. This ensures # hrefs won't follow default behavior in IE / Win Phone. 2011-03-14 00:20:24 -04:00
scottjehl
60d75f008c fixed Ajax navigation in Windows Phone 7. Since all urls are absolute in IE, we need to check if the href has a protocol up front, and if so, later on, make sure we don't prefix it with a base path because it doesn't need one. 2011-03-14 00:20:24 -04:00
scottjehl
0f9eb85240 removed a TODO about changing the changePage function's arg structure. We can revisit this again if it ends up causing problems, but for now, it's not hurting anything and people are already using it. Fixes #1152 2011-03-13 21:59:51 -04:00
John Bender
1911dba7d7 small refactor for clean 2011-03-12 14:37:45 -08:00
John Bender
f555a27e34 fix for protocol and host included as params in path.clean 2011-03-12 14:37:45 -08:00
John Bender
8cac1c5777 word boundy added back with proper escape sequence 2011-03-12 12:05:07 -08:00
John Bender
94ade0f86e fixed failing data-url regex, bizarri difference in behaviour with Regex objects and literals 2011-03-12 00:10:40 -08:00
Kin Blas
b00d05b81c Merge branch 'master' into fastclick 2011-03-11 10:33:11 -08:00
John Bender
a2747915c5 corrected issue with setting forward and back values for changepage closure 2011-03-09 23:27:59 -08:00
John Bender
8803bee3bb fixed zero index bug for directHashChange 2011-03-09 22:55:07 -08:00
John Bender
224c0a90ca removed unnecessary variables in hashchange callback 2011-03-09 22:55:07 -08:00
John Bender
150f0f6c17 moved global hashchange disable check above dialog check 2011-03-09 22:55:06 -08:00
John Bender
c9416a09a7 moved urlHistory refs to this where possible 2011-03-09 22:55:06 -08:00
John Bender
1ad0769862 refactored determining of back or forward and added callbacks for both cases 2011-03-09 22:55:06 -08:00
John Bender
6e64ccf308 moved dialog skipping to the hashchange callback, needs a refactor 2011-03-09 22:53:38 -08:00
scottjehl
ea60207c1b changed custom data method to $.fn.mobileData() and updated plugins that use it. 2011-03-09 23:27:21 -05:00
scottjehl
19f5fd7cae changed the default namespace to "" and updated the docs/demos as such 2011-03-09 22:36:14 -05:00
scottjehl
3cae8f8bf0 caught a few more 2011-03-09 21:03:40 -05:00
scottjehl
77ac0f009a a few more non-namespaced attrs to bring over 2011-03-09 21:03:40 -05:00
scottjehl
9e91fa6752 updated docs with jq namespace, found some more stragglers 2011-03-09 21:03:40 -05:00
scottjehl
2e7ee89ec3 updated attr lookups to use namespace 2011-03-09 20:49:42 -05:00
scottjehl
ce34ece257 namespaced data- attrs to $.mobile.ns (defaults to "jq-") throughout the JS 2011-03-09 20:47:44 -05:00
Kin Blas
d612edd126 Fix for Issue 1195 - base href getting incorrectly set to include extra "/"
- Added code to base.set() that strips any leading slash from the path returned from path.get().
2011-03-09 17:23:36 -08:00
Kin Blas
6ca8b9f700 Merge branch 'master' into fastclick 2011-03-09 14:25:58 -08:00
Kin Blas
ea77d0370d Fix for issue 1207 - Can't revisit the same page after visitin it, hitting the back button and clicking its link
- This was a regression introduced by 20dce2ce. Added check for undefined newActiveIndex so we can tell the difference between the URL not being found, and a zero index.
2011-03-08 10:56:36 -08:00
Kin Blas
96a308cc6b Merge branch 'master' into fastclick 2011-03-08 09:10:07 -08:00
ahallerblu
291bb306dd find the next entry in the urlstack that isn't a dialog Fixes #1061 2011-03-04 23:34:12 -08:00
eddiemonge
2cb7ff0814 Issue: 733; Defaults form submits to GET method when method is not defined to prevent crashing Android's default browser 2011-03-03 17:45:34 -08:00
Kin Blas
b8c73e2599 Merge branch 'master' into fastclick 2011-02-28 09:41:40 -08:00
Martin Kou
df21c701b5 Fixed animationComplete return value bug. 2011-02-27 22:07:34 -08:00
John Bender
20dce2ce42 small refactor to simplify newActiveIndex tracking 2011-02-25 23:24:03 -08:00
John Bender
86befdeaed removed unused var/global from navigation 2011-02-25 23:24:03 -08:00
Bra1n
6152e8f511 fixed page history direction search for duplicate entries 2011-02-25 23:24:03 -08:00
Kin Blas
730dae0fc1 Merge branch 'master' into fastclick 2011-02-25 20:41:09 -08:00
Kin Blas
b4a8222366 Fix for the remainder of issue 991.
- Looks like the "Intelligent Guess" default behavior of the $.ajax() method in jQuery 1.5.1 guesses wrong when attempting to load an HTML file via a file:// URL. It's guessing that it is an XML document, so it ends up passing in the DOM document node to our success callback, instead of the expected HTML as text (responseText), so our callback code does not behave correctly. We can get around this by simply specifying dataType:"html" at the time we make a request.
2011-02-25 18:23:26 -08:00
Kin Blas
de0f12f164 Merge branch 'master' into fastclick 2011-02-18 18:05:38 -08:00
scottjehl
b6b7aebe14 null hrefs should just preventDefault and return, rather than returning false. Fixes #1118 2011-02-18 16:46:28 -05:00
Kin Blas
c063e1ce65 Changed "click" bindings to "vclick" for listview and anchors. 2011-02-18 12:40:30 -08:00
John Bender
709d12e4d6 resolved conflict for default dialog transition to pop 2011-02-16 22:52:14 -08:00
John Bender
61b7b2e002 removed unnecessary var declaration 2011-02-16 19:55:01 -08:00
Ernesto Jiménez
9aa1a38a32 Reviewing the code realised that this var was implicitly declared as global. 2011-02-16 22:22:28 +00:00
John Bender
3759f87173 reverted to regex method of retrieving the data-url from ajax loaded content to guarantee base is set, regex's courtesy of jblas 2011-02-15 22:24:15 -08:00
John Bender
f301018c1c added an extra parameter to data url element to match reported issue in pull request 2011-02-14 17:33:06 -08:00
John Bender
47d4a1fb0a refactor/simplification of fix for broken regex matching data url in ajax loaded pages 2011-02-14 17:25:23 -08:00
John Bender
5a23721a92 whitespace fix for navigation 2011-02-14 17:23:25 -08:00
Ernesto Jiménez
09213738f3 Regular expression / data-url="(.*)"/ doesn't stop at the end of the attribute
but the last quotes in the HTML.

I have replaced wildcard . with [^"] to fetch only the attribute content.
2011-02-14 16:33:58 +00:00
Kin Blas
b696bda01b Cleaning up a bunch of jslint errors and warnings. 2011-02-08 13:13:59 -08:00
John Bender
3ca20f8362 resolved small conflict in test fixtures 2011-02-07 22:33:49 -08:00
Kin Blas
1c9414d030 Fix for issue #997 - Syntax Error (line 1711) alpha 3
- Escaped the slash characters inside the brackets of the href regexp.
2011-02-07 11:43:55 -08:00
Alex Kovar
d970c20e4c fixed error when from is undefined 2011-02-05 14:03:31 -06:00
Alex Kovar
79929949db fix issue with failed page load not releasing page transition lock 2011-02-05 14:00:31 -06:00
Alex Kovar
e3a5dd5b09 fixed base undefined error in firefox 2011-02-02 13:10:40 -06:00
Alex Kovar
2754087fc7 externalize $.mobile.urlHistory.clear function 2011-02-02 12:58:27 -06:00
scottjehl
675deb1282 Merge remote branch 'origin/master' 2011-02-02 00:59:59 -05:00
John Bender
4ddc5c7dd5 Merge branch 'changepagefix' of https://github.com/ajkovar/jquery-mobile into ajkovar-changepagefix 2011-02-01 21:36:24 -08:00
scottjehl
4023e1bf68 select menus also need blurring on transition. 2011-02-02 00:11:16 -05:00
Jesse Streb
e15ce80702 moved the setTimeout within the transition to be in the success handler of the ajax response. We now wrap the transitionPages that we call after injecting the new page into the DOM within the setTimeout which fixes the same issue but limits to pages that are injected into the DOM and makes it more clear why we have the setTimeout 2011-02-01 21:44:23 -05:00
Alex Kovar
d4c8c3cee2 fix for $.mobile.urlHistory test 2011-02-01 14:08:19 -06:00
Alex Kovar
1eed03cf0c Fixed issue with simultaneous page transitions. Closes gh-856
Conflicts:

	js/jquery.mobile.navigation.js
	tests/unit/navigation/navigation_transitions.js
2011-02-01 14:07:17 -06:00
scottjehl
3f938fd2f9 fixed bug where a preset data-url was being prefixed by the base url, rather than replacing the whole hash. Fixes #591 2011-02-01 12:32:02 -05:00
scottjehl
6855363375 changing this selector to be more specific prevents an error in IE 7 (and win mobile). Support is coming :) 2011-02-01 11:53:32 -05:00
Mark Schuette
f640646877 added the ability to use the default behavior of links with data-ajax=false 2011-02-01 14:13:04 +08:00
scottjehl
a5c8f86d10 links with no href attribute will not throw an error when clicked. Fixes #932 2011-02-01 01:01:41 -05:00
scottjehl
6eefb23406 changed the name of urlHistory.listeningEnabled to urlHistory.ignoreNextHashChange. The name more accurately reflects the purpose of this internal toggle. Unit tests included. Also Fixes #930 2011-01-31 23:56:56 -05:00
scottjehl
35b1df81e7 changePage was firing more than once because hash listening was not disabled long enough to prevent listening of the resulting async hashchange event after setting location.hash. This change makes urlHistory.listeningEnabled act as an internal toggle (as it used to), so it is only meant for ignoring a single hashchange event. A future change might be appropriate to change its name to something more like "ignoreNextHashChange".
Unit test included.

Fixes #930
2011-01-31 23:47:01 -05:00
scottjehl
3162428558 added hashListeningEnabled global flag. This is meant as a global config option for end users to disable hashchange listening (as opposed to urlHistory.listeningEnabled, which is an internal toggle). Unit test included. Fixes #748 2011-01-31 23:25:36 -05:00
scottjehl
d509404b72 Merge remote branch 'origin/master'
Conflicts:
	js/jquery.mobile.navigation.js
2011-01-31 17:33:25 -05:00
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
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
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
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
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
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
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
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
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
John Bender
e5d2bf1b66 added target check to $.mobile.isExternalLink 2011-01-20 23:05:37 -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
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
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
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
John Bender
b8babd1003 removed console log and added test for default transition 2010-12-16 19:12:58 -08:00
John Bender
7ffec259c5 added tests for explicit transition on back 2010-12-16 18:21:46 -08:00
John Bender
67aed1320b prefer explicit transition even when the url is popped of the stack Fixes #627 2010-12-16 18:20:17 -08:00
John Bender
95ef08b269 perspective class only added on flip page transition or any transition added to the perspectiveTransitions local var in the transitionPages function Fixes #568 2010-12-13 02:21:40 -08:00
Richard Stutfield
0a87b59a04 Navigation: delay removal of duplicateCachedPage 2010-12-10 12:27:14 +00:00
Kin Blas
4882c068b0 Modified loadComplete() so that it always fires off the "show" event. The idea here is that calling preventDefault() on a "hide" event shouldn't prevent the "show" event from being dispatched. Calling preventDefault() on the "show" event still prevents the "to" page from becoming the active page.
Removed redundant target delcaration in the <a> live click callback.
2010-12-08 12:40:21 -08:00
scottjehl
80d56e655b Changed page navigation scripting to use data-url attributes instead of IDs for storing page URLs. This fixes a number of issues, most importantly #477, which exposed a conflict between jQuery's selector engine that would result in un-enhanced pages whenever linking between two pages in the same directory.
The shift away from interal ID attribute usage also allows users to bind page events (pagecreate, pagebeforecreate) to a page div by its ID, which was a frequent cause of confusion when it didn't work as expected in former versions of the framework.

Seemingly unrelated: these commits allow you to specify data-role="dialog" in multipage and single page templates. In multipage templates, the role must be on the page (a link with data-rel alone will not work in multi-page). This addresses issue number 464, but may need further testing for obscure scenarios.

Fixes #477 (Pages are not enhanced when linking to a filename without a path)
Fixes #493 (Click the same link twice -> blank page)
Fixes #513 (closing dialog + returning to the same dialog)
Fixes #550 (changePage() not updating hash for internal pages - breaks )
Fixes #464 (Dialogs don't work within multi-pages)
Fixes #633 (Recent change to prevent same-page requests breaks select menu close button)
Fixes #599 (Page ids & page specific events)
Fixes #634 (After a bad page request, base url is not reset to current path)

booya.
2010-12-07 12:05:10 -05:00
scottjehl
2931fffb91 blur the active/focused element on changepage sooner. Thx @goulvench 2010-12-04 14:46:41 -05:00
scottjehl
74ebc360ca make sure hashchange event never causes additional hash changes to occur when responding with a page change 2010-12-04 13:13:55 -05:00