Skip to content

Commit

Permalink
flag click/submit events as they are handled by _handleRequest - to p…
Browse files Browse the repository at this point in the history
…revent outer virtualBrowsers from handling them again.
  • Loading branch information
maranomynet committed Feb 14, 2012
1 parent a4ab439 commit b328113
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 35 deletions.
2 changes: 1 addition & 1 deletion 1.1/jquery.virtualbrowser-1.1-min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

72 changes: 38 additions & 34 deletions 1.1/jquery.virtualbrowser-1.1.js
Expand Up @@ -484,48 +484,52 @@


_handleHttpRequest = function (e) {
var isSubmit = (e.type == 'submit'),
elm = isSubmit ?
$(this):
$(e.target).closest('[href], input:submit, button:submit, input:image'),
vbElm = isSubmit ?
elm.data(_virtualBrowserBdy):
this;
if (elm[0])
if ( !e[_virtualBrowser+'Handled'] ) // leave the event alone, if it's already handled by a inner virtualBrowser
{
if ( !e[_isDefaultPrevented]() )
var isSubmit = (e.type == 'submit'),
elm = isSubmit ?
$(this):
$(e.target).closest('[href], input:submit, button:submit, input:image'),
vbElm = isSubmit ?
elm.data(_virtualBrowserBdy):
this;
if (elm[0])
{
if ( elm.is('input, button') ) // click on a submit button -
if ( !e[_isDefaultPrevented]() )
{
if ( !elm[0].disabled )
if ( elm.is('input, button') ) // click on a submit button -
{
// make note of which submit button was clicked.
var VBdata = $(vbElm).data(_virtualBrowser);
if ( elm.is(':image') )
if ( !elm[0].disabled )
{
var offs = elm.offset();
VBdata._clicked = {
elm: elm,
X: e.pageX - offs.left,
Y: e.pageY - offs.top
};
}
else if ( elm.is('[name]') )
{
VBdata._clicked = { elm: elm };
// make note of which submit button was clicked.
var VBdata = $(vbElm).data(_virtualBrowser);
if ( elm.is(':image') )
{
var offs = elm.offset();
VBdata._clicked = {
elm: elm,
X: e.pageX - offs.left,
Y: e.pageY - offs.top
};
}
else if ( elm.is('[name]') )
{
VBdata._clicked = { elm: elm };
}
// in case the 'submit' event on the form gets cancelled we need to guarantee that this value gets removed.
// A timeout should (theoretically at least) accomplish that.
VBdata._clicked && setTimeout(function(){ delete VBdata._clicked; }, 0);
}
// in case the 'submit' event on the form gets cancelled we need to guarantee that this value gets removed.
// A timeout should (theoretically at least) accomplish that.
VBdata._clicked && setTimeout(function(){ delete VBdata._clicked; }, 0);
}
}
else // normal link-click or submit event
{
var bfloadEv = _methods['load'].call(vbElm, elm, {_nativeEvent:true});
if ( !bfloadEv[_passThrough] )
else // normal link-click or submit event
{
!bfloadEv._doIframeSubmit && e[_preventDefault]();
bfloadEv.isPropagationStopped() && e[_stopPropagation]();
var bfloadEv = _methods['load'].call(vbElm, elm, {_nativeEvent:true});
if ( !bfloadEv[_passThrough] )
{
!bfloadEv._doIframeSubmit && e[_preventDefault]();
bfloadEv.isPropagationStopped() && e[_stopPropagation]();
e[_virtualBrowser+'Handled'] = true; // flag that this event has been captured and handled by virtualBrowser plugin. Means that outer virtualBrowsers should leave it alone
}
}
}
}
Expand Down

0 comments on commit b328113

Please sign in to comment.