HTML examples used the following technique with ice.microphone to allow changing the style on a standard anchor and a jquery mobile "enhanced" anchor (the enhancement process mangles the DOM structure). Since the new microphone integration is no longer a toggle, this will revert to a simple onclick.
<a data-role="button" id="mic" onclick="var subtext = this.firstChild; if(1===subtext.nodeType)
{subtext=subtext.firstChild.firstChild}
;if(subtext.data=='Stop')
{subtext.data='Record';this.classList.remove('recordstyle')}
else
{subtext.data='Stop';this.classList.add('recordstyle')}
ice.microphone('mic');">Record</a>
The Ajax technique used in spring-mvc-basic (derived from spring-mvc-showcase; we should rename our application once it has the desired features) is based on jQuery. A set of tabs along the top is enabled with
$("#tabs").tabs();
When a tab is clicked, it is either brought to the front or fetched from the server. This caused a subtle bug: even though the server-fetched tabs are developed as standalone HTML pages, their contents will be inserted simultaneously into the client DOM. There must be no ID duplication between these pages, or page updates and interaction will fail in strange ways. By cloning one of the pages, "formsContent" and "form" were duplicated, leading to failures in page update.