首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何动态更改onClick处理程序?

如何动态更改onClick处理程序?
EN

Stack Overflow用户
提问于 2008-10-30 02:03:39
回答 11查看 161.1K关注 0票数 54

我敢肯定有一百万篇关于这方面的帖子,但令人惊讶的是,我很难找到一些东西。

我有一个简单的脚本,我希望在页面初始化时为<A>链接设置onClick处理程序。

当我运行这个命令时,我立即得到一个'foo‘警告框,我期望在我点击这个链接时只会得到一个警告。

我做错了什么愚蠢的事?(我已经尝试过click=和onClick=)...

代码语言:javascript
复制
<script language="javascript">

    function init(){

        document.getElementById("foo").click = new function() { alert('foo'); };
    }

</script>

<body onload="init()">
    <a id="foo" href=#>Click to run foo</a>
</body>

编辑:我将我接受的答案更改为jQuery答案。从技术上讲,'Már Örlygsson‘的答案是我最初问题的正确答案(click应该是onclicknew应该被删除),但我强烈建议任何人不要在他们的代码中直接使用'document.getElementById(...) -而使用jQuery

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2008-10-30 02:10:14

jQuery:

代码语言:javascript
复制
$('#foo').click(function() { alert('foo'); });

或者,如果您不希望它跟随链接href:

代码语言:javascript
复制
$('#foo').click(function() { alert('foo'); return false; });
票数 23
EN

Stack Overflow用户

发布于 2008-10-30 02:06:55

尝试:

代码语言:javascript
复制
document.getElementById("foo").onclick = function (){alert('foo');};
票数 73
EN

Stack Overflow用户

发布于 2008-10-30 02:10:48

使用.onclick (全部小写)。如下所示:

代码语言:javascript
复制
document.getElementById("foo").onclick = function () {
  alert('foo'); // do your stuff
  return false; // <-- to suppress the default link behaviour
};

实际上,你可能会发现自己最好使用一些好的库(我推荐jQuery有几个原因)来启动和运行,并编写干净的javascript。

跨浏览器(In)兼容性对于任何人来说都是一个很难处理的地狱--更不用说那些刚刚起步的人了。

票数 36
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/249074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档