What is Unobtrusive Javascript in layman terms?

JavascriptUnobtrusive Javascript

Javascript Problem Overview


What is Unobtrusive Javascript in layman terms? An example would be nice to aid my understanding.

Javascript Solutions


Solution 1 - Javascript

Checkout the wikipedia article:

> > > "Unobtrusive JavaScript" is a general > approach to the use of JavaScript in > web pages. Though the term is not > formally defined, its basic principles > are generally understood to include: > > * Separation of functionality (the "behavior layer") from a Web page's > structure/content and presentation
> * Best practices to avoid the problems of traditional JavaScript > programming (such as browser > inconsistencies and lack of > scalability)
> * Progressive enhancement to support user agents that may not > support advanced JavaScript > functionality[2]

So it is basically separating behavior or javascript from presentation or html.

Example:

<input type="button" id="btn" onclick="alert('Test')" />

That is not unobstrusive javascript because behaviour and presentation are mixed. The onclick shouldn't be there in html and should be part of javascript itself not html.

With above example, you can go unobstrusive like this:

<input type="button" id="btn" />

JavaScript:

var el = document.getElementById('btn');
el.onclick = function(){
  alert('Test');
};

That time we have separated javascript from html with a very basic example.

Note:

There is more to unobstrusive javascript as can be checked out on wikipedia article.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionImranView Question on Stackoverflow
Solution 1 - JavascriptSarfrazView Answer on Stackoverflow