TAP5-2431: Ajax EventLinks should not cancel the click event
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/5ee601f4 Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/5ee601f4 Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/5ee601f4 Branch: refs/heads/master Commit: 5ee601f4956402ffc40468a96a2e9b76a72c7ecd Parents: 2669319 Author: Howard M. Lewis Ship <hls...@apache.org> Authored: Tue Dec 23 16:34:52 2014 -0800 Committer: Howard M. Lewis Ship <hls...@apache.org> Committed: Tue Dec 23 16:34:52 2014 -0800 ---------------------------------------------------------------------- .../coffeescript/META-INF/modules/t5/core/zone.coffee | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/5ee601f4/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/zone.coffee ---------------------------------------------------------------------- diff --git a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/zone.coffee b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/zone.coffee index 5735ae8..ae1f9be 100644 --- a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/zone.coffee +++ b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/zone.coffee @@ -47,7 +47,7 @@ define ["./dom", "./events", "./ajax", "./console", "./forms", "underscore"], return zone - dom.onDocument "click", "a[data-update-zone]", -> + dom.onDocument "click", "a[data-update-zone]", (event) -> element = @closest "[data-update-zone]" @@ -59,7 +59,8 @@ define ["./dom", "./events", "./ajax", "./console", "./forms", "underscore"], if zone zone.trigger events.zone.refresh, url: element.attr "href" - return false + event.nativeEvent.preventDefault() + return dom.onDocument "submit", "form[data-update-zone]", -> @@ -121,7 +122,7 @@ define ["./dom", "./events", "./ajax", "./console", "./forms", "underscore"], success: (response) -> zone.trigger events.zone.update, content: response.json?.content - dom.onDocument "click", "a[data-async-trigger]", -> + dom.onDocument "click", "a[data-async-trigger]", (event)-> link = @closest 'a[data-async-trigger]' link.addClass "ajax-update" @@ -129,7 +130,9 @@ define ["./dom", "./events", "./ajax", "./console", "./forms", "underscore"], ajax (link.attr "href"), complete: -> link.removeClass "ajax-update" - return false # cancel click event + event.nativeEvent.preventDefault() + + return # Locates a zone element by its unique id attribute, and (deferred, to a later event loop cycle), # performs a standard refresh of the zone. This is primarily used by the core/ProgressiveDisplay component. @@ -148,4 +151,4 @@ define ["./dom", "./events", "./ajax", "./console", "./forms", "underscore"], zone.trigger events.zone.refresh, { url } # Most of this module is document-level event handlers, but there's also some exports: - return { deferredZoneUpdate, findZone } \ No newline at end of file + return { deferredZoneUpdate, findZone }