javascript - evento - removeattr disabled
OnClick sin jQuery (9)
Cómo hacer onclick
sin jQuery, sin código adicional en HTML, como por ejemplo:
<a href="#" onclick="tramtramtram">
¿Solo usando un archivo extrnal js?
<script type="text/javascript" src="functions.js"></script>
Necesito reemplazar este código:
$("a.scroll-up, a.scroll-down").click(function(){
SNavigate($(this).attr("href").substr(7));return false;
});
Cuando este delimitador contendrá solo una función para manejar al hacer clic, entonces solo puede escribir
document.getElementById(''anchorID'').onclick=function(){/* some code */}
de lo contrario, debe usar el método DOM addEventListener
function clickHandler(){ /* some code */ }
var anchor = document.getElementById(''anchorID'');
if(anchor.addEventListener) // DOM method
anchor.addEventListener(''click'', clickHandler, false);
else if(anchor.attachEvent) // this is for IE, because it doesn''t support addEventListener
anchor.attachEvent(''onclick'', function(){ return clickHandler.apply(anchor, [window.event]}); // this strange part for making the keyword ''this'' indicate the clicked anchor
también recuerde llamar al código anterior cuando se cargan todos los elementos (por ejemplo, en window.onload)
- editar
Veo que agregaste algunos detalles. Si quieres reemplazar el código a continuación
$("a.scroll-up, a.scroll-down").click(function(){SNavigate($(this).attr("href").substr(7));return false;});
con algo que no usa jQuery, esto debería hacer el trabajo
function addEvent(obj, type, fn) {
if (obj.addEventListener)
obj.addEventListener(type, fn, false);
else if (obj.attachEvent)
obj.attachEvent(''on'' + type, function() { return fn.apply(obj, [window.event]);});
}
addEvent(window, ''load'', function(){
for(var i=0, a=document.anchors, l=a.length; i<l;++i){
if(a[i].className == ''scroll-up'' || a[i].className == ''scroll-down''){
addEvent(a[i], ''click'', function(e){ SNavigate(this.href.substr(7)); e.returnValue=false; if(e.preventDefault)e.preventDefault();return false});
}
}
});
Debe usar getElementById para agregar el controlador onclick. Sin embargo, debe iniciar su código en algún lugar. Sin jQuery solo puedes usar el controlador de carga en el cuerpo:
<body onload="myinitfunction()">
myinitfunction puede estar en un archivo js externo.
Ejecute este script cuando se cargue el documento (reemplazando la alerta con sus cosas):
var rgLinks = document.getElementsByTagName("A");
for (var x=0; x<rgLinks.length; x++) {
el = rgLinks[x];
if (el.className == ''scroll-down'' || el.className == ''scroll-down'')
{
el.onclick = function () {alert(''onclick'');};
}
}
Tal vez eso es lo que preguntas sobre ...
Qué tal esto :
document.getElementById("lady").onclick = function () {alert(''onclick'');};
Sin código adicional en el html, aquí hay una forma de hacerlo:
<html><body><head><script> // This script could be in an external JS file
function my_handler(elt) {
alert("Yay!");
return false;
}
function setup() {
document.getElementById(''lady'').onclick = my_handler;
}
window.onload = setup;
</script></head>
<body><a href=''#'' id=''lady''>Test</a></body>
</html>
Solo usa el atributo onclick .
<a href="#" onclick="functionName(someParam)">
O para hacerlo desde javascript,
document.getElementById("anchorID").onclick = function(){
some code
};
W3C sugiere:
element.addEventListener(''click'',doSomething,false)
Microsoft usa:
element.attachEvent(''onclick'',doSomething)
Puede hacer alguna detección de características y determinar qué llamada usar.
var el = document.getElementById (''lady''); el.addEventListener ("click", tramtramtram, falso);
<script>
function tramtramtram(){
alert("tram it!");
}
</script>
<a href="#" onclick="tramtramtram()">tramtram</a>