When you assign event handler code to attributes, any functions that are used need to be available in the global variable scope.
To accomplish this, you can make them properties of window. Currently, your never and start functions are local to the IIFE function scope.
// IIFE function
(function() {
// var never, start; // local variables
// Make the functions globally scoped
window.never = function() {
return alert("try");
};
window.start = function() {
return alert("try harder");
};
}).call(this);
You can expose a single namespace if you prefer
// IIFE function
(function() {
var ns = window.ns = {};
// Make the functions globally scoped
ns.never = function() {
return alert("try");
};
ns.start = function() {
return alert("try harder");
};
}).call(this);
And then change your inline handler to use ns.never(); and ns.start();.
neveris not the global and therefore cannot be found.