@masterojitos, quizás es "más simple" lo que propones pero varias cosas que deberíamos tomar en cuenta cuando programamos JavaScript ;)
* Separar el JavaScript del HTML
* Evitar usar el Global Scope
* Empaquetar el código
* Usar listeners adecuadamente
* etc...
Yo refactorizaría tu código de la siguiente manera:
Código Javascript
:
Ver originalvar App = {
rand : function(min, max){
var argc = arguments.length;
if(argc == 0){
min = 0;
max = 2147483647;
}else if(argc == 1){
throw "Warning: rand() expects exactly 2 parameters, 1 given";
}
return Math.floor((Math.random() * (max - min + 1)) + min);
},
change : function(id){
var aleatorio = this.rand(1, 30),
a = document.getElementById(id);
a.rel = '../css/backgrounds/' + aleatorio + '.css';
a.innerHTML = aleatorio;
},
on : function(elem,type,cb,scope){
if(!elem){throw "El elemento es obligatorio!";}
scope = scope || elem;
cb = cb || function(){};
if (document.addEventListener){
elem.addEventListener(type, function(event){
cb.call(scope,elem,event);
},false);
}else if(document.attachEvent){
elem.attachEvent( 'on' + type, function() {
cb.call(scope,elem, window.event);
});
}
}
}
App.on(window, "load", function(){
var link = document.getElementById("back_change");
App.on(link,"click",function(){
App.change("back_change");
});
App.on();
});
Buen día :)