Javascript 不带jQuery的OnClick

Javascript 不带jQuery的OnClick,javascript,onclick,Javascript,Onclick,如何使onclick不使用jQuery,而不使用HTML中的额外代码,例如: <a href="#" onclick="tramtramtram"> 功能电车(){ 警觉(“有轨电车!”); } 这个怎么样: document.getElementById("lady").onclick = function () {alert('onclick');}; 只需使用属性 <a href="#" onclick="functionName(someParam)">

如何使
onclick
不使用jQuery,而不使用HTML中的额外代码,例如:

<a href="#" onclick="tramtramtram">

功能电车(){
警觉(“有轨电车!”);
}
这个怎么样:

document.getElementById("lady").onclick = function () {alert('onclick');};
只需使用属性

<a href="#" onclick="functionName(someParam)">

var el=document.getElementById('lady');
el.addEventListener(“点击”,电车,错误)

您需要使用getElementById来添加onclick处理程序。但是,您需要在某个地方启动代码。如果没有jQuery,则只能使用body onload处理程序:

<body onload="myinitfunction()">


myinitfunction可以位于外部js文件中。

当此锚定只包含一个单击时要处理的函数时,您可以编写它

document.getElementById('anchorID').onclick=function(){/* some code */}
否则,必须使用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
还记得在加载所有元素时调用上述代码(例如,在window.onload上)

--编辑

我看到你添加了一些细节。如果要替换下面的代码

$("a.scroll-up, a.scroll-down").click(function(){SNavigate($(this).attr("href").substr(7));return false;});
对于不使用jQuery的东西,这应该可以完成任务

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});
      }
   }
});
功能加法器(obj,类型,fn){
if(对象添加列表器)
obj.addEventListener(类型,fn,false);
else if(对象附件)
attachEvent('on'+类型,function(){return fn.apply(obj[window.event]);});
}
addEvent(窗口“加载”,函数(){

对于(var i=0,a=document.anchors,l=a.length;i,在html中没有额外的代码,下面是一种方法:

<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>
//此脚本可能位于外部JS文件中
函数my_handler(elt){
警惕(“耶!”);
返回false;
}
函数设置(){
document.getElementById('lady').onclick=my\u处理程序;
}
window.onload=设置;
W3C建议:

element.addEventListener('click',doSomething,false)
Microsoft使用:

element.attachEvent('onclick',doSomething)
您可以执行一些功能检测并确定要使用的调用


从。

加载文档时执行此脚本(用您的资料替换警报):

var rgLinks=document.getElementsByTagName(“A”);

对于(var x=0;席不能分辨出我们中的哪一个先到达这里;-)我需要从HTMLI中删除所有的“点击”,需要删除所有的“点击”。从htmlSince开始,新问题使用的是类选择器而不是id,您必须首先自己查找使用该类的所有元素。请参阅google中getElementsByClass的许多实现。看起来不错。您可以用普通js替换给定函数而不使用jquery吗?只需覆盖onlick属性。如果您使用的是addEventListen呃,您还必须跟踪您添加的内容,以便在以后删除它(这无疑是JQuery本身使用的)。@Mike:这是“普通的”javascript。除了像您的代码那样按id而不是按类获取元素之外。@Anonymous:谢谢,您如何通过addEventListener跟踪尝试的事件?您能用普通js替换给定函数而不使用jquery吗?这是普通javascript,不使用jquery。您可能还会发现Dean Edwards解决方案很有趣-@Russ Cam:Dean Edwards解决方案有一个缺点,Dean稍后描述的是:哦,粘贴了不完整的URL,对不起;-)这一个很好:但我看到你已经找到了我的意思。你能稍后删除该事件吗?如果它是一个无名事件,比如函数声明ie.foo.addEventListener('onclick',function(){alert('bar')呢;或者它是永久附加的吗?(我只是好奇,顺便说一句,我不需要这个代码…我刚读了这篇文章,就想到了这个问题)。你可以通过element.removeEventListener(WC3)或element.detachEvent(MS)删除事件。不幸的是,这对匿名函数不起作用。我会继续使用事件处理程序的命名函数。
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});
      }
   }
});
<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>
element.addEventListener('click',doSomething,false)
element.attachEvent('onclick',doSomething)
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');};
        }
    }