Closed janz93 closed 7 years ago
PR #50 Was not able to use event.preventDefault ()
API as we would have to monkey patch. Introduced a "sugar" method event.prevent ()
which will be available to all declared on*
events
(i.e. static onclick (event) {}
)
Conversely we also introduced the return false
convention for those familiar with jQuery.
Element `foo-bar`
(class extends HTMLElement {
static onclick (event) {
event.prevent () // pre-operation disable of rendering
alert `I was clicked ${event.target}` // operation
// this.render () // always have option to explicitly render
return false // post-operation disable of rendering
// render will immediately fire after handler if event was not prevented
}
})
@janz93 @RobertChristopher @brandondees @btakita @mrbernnz @scottmacdowell
is this to reproduce preventDefault()'s behavior or to prevent snuggsi from rendering? if the latter, i think prevent()
is not self-descriptive as it could be
latter @brandondees. API suggestion? To be honest i'm good with return false
however really wanted to have event.preventDefault ()
and i agree is confusing unless it actually Prevents the Default.
I think what i realized from your statement is prevent ()
is fine if it actually calls preventDefault
AND prevents this.render
which is a "default behavior" that is prevented. (as per the spec).
Please advise.
is this to reproduce preventDefault()'s behavior or to prevent snuggsi from rendering? if the latter, i think prevent() is not self-descriptive as it could be
Actually @brandondees on second thought not an OR situation but an AND situation.
nah i think the prevent()
name is confusing UNLESS it's just a contextual wrapper for e.preventDefault()
since that's the only other thing it sounds like.
if its purpose is to prevent default AND prevent render, then maybe we start by calling it preventDefaultHooks()
or something a little more descriptive like that. if it's only render() then preventRender()
i'm not sure i've grasped yet where the return false
factors in or what it means
@brandondees some (ancient) insight as to the conventions. https://stackoverflow.com/questions/1357118/event-preventdefault-vs-return-false
http://www.mail-archive.com/jquery-en@googlegroups.com/msg71371.html
Note that this behaviour differs from normal (non-jQuery) event handlers, in which, notably, return false does not stop the event from bubbling up.
ah ok so there's a scope traversal thing going on also independent of preventDefault()
Default
currently, we call always
render
We can implicitly render on all event handlers.
Preventing Default
Inject the event object into the handler MDN Event Object