首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将函数绑定到onclick属性?

如何将函数绑定到onclick属性?
EN

Stack Overflow用户
提问于 2014-08-27 16:16:43
回答 6查看 2K关注 0票数 1

我在html中有一个绑定到onclick事件的函数,如下所示:

代码语言:javascript
运行
复制
<script>
    function f1(){ alert('hello world'); };
</script>

<a onclick="f1()">test</a>

我想用这个函数做一些事情,比如将它绑定到另一个事件。我在jQuery上试过这个:

代码语言:javascript
运行
复制
var defaultFunction = $('a').attr('onclick');

但是defaultFunction被定义为字符串,而不是函数本身。我可以用eval(defaultFunction)来评估它,但这让我觉得很脏。有什么方法可以访问函数本身,而不是字符串?

也就是说,我希望能够调用defaultFunction()并执行绑定到a元素的默认onclick行为。(在本例中,请调用f1())。

这里有一个小提琴试图做到这一点,但失败了。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-08-27 16:30:26

它只是onclick属性,不需要jQuery:

代码语言:javascript
运行
复制
<script>
    function f1(){ alert('hello world'); };
</script>

<a onclick="f1()" id="aa">test</a>
<a id="bb">test2</a>

<script>
    bb.onclick = aa.onclick;
    // or
    bb.onclick = function (){ alert('hello bb'); };   
</script>
票数 1
EN

Stack Overflow用户

发布于 2014-08-27 16:29:35

如果这个document.getElementById("id_of_your_element").onclick对您有帮助,它将返回click处理程序,您可以调用它,但是手动引发事件是不对的。

票数 2
EN

Stack Overflow用户

发布于 2014-08-27 16:30:48

就像这样:

示例

代码语言:javascript
运行
复制
var defaultFunction = $('a').attr('onclick');
var defaultFunctionName = defaultFunction.substring(0, defaultFunction.indexOf('('));

$('div').on('click', function(){

   if(typeof window[defaultFunctionName] ==="function")
   {
         window[defaultFunctionName]();
   }
    alert('Hello universe!');
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25532182

复制
相关文章

相似问题

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