4 ms·
IMO modern web language should have some notion of events as in my Sciter ( https://sciter.com/event-handling/ https://sciter.com/event-handling/ ) for example:
by c-smile 8y ago
IMO modern web language should have some notion of events as in my Sciter ( https://sciter.com/event-handling/ https://sciter.com/event-handling/ ) for example:
event click $(table > thead > tr > th) {
// click on table header cell
// 'this' is that th element
}
class Widget : Element
{
function attached() {...}
event click $(span.up) { this.increment(); }
event click $(span.down) { this.decrement(); }
event mousedown { this.state.focus = true; }
...
}
- joehewitt 8y agoYES. Every time I see a new language come out without first class event support it is obvious the creator never wrote a lick of front end code in their life.
- mkl 8y agoCan you explain how these differ from ordinary callback functions? I haven't done any web development to speak of, but I've done a fair bit of GUI stuff, doing things like this snippet appears to in languages that don't have "events" as a separate category of thing.
- c-smile 8y agoThis observable.on("click", observerFunc); // or observable.addEventListener(...); is an executable statement. And this class Widget : Element { event click { … observer's code … } } is a declaration. That executable statement needs to be called at some point of time. So the observable can be in two states - with and without that event handler. While class declaration is an invariant (at least in Sciter) - as soon as element is in DOM it has that class and consistent set of event handlers in place. Such binding is done by, again, CSS declaration: widget { prototype: Widget url(path); // <widget> controller display: block; ... } "I've done a fair bit of GUI stuff" AFAIR VB6 and Delphi allow to declare event handlers without explicit/runtime binding - that's close as a concept to the above.