我在html中有一个绑定到onclick事件的函数,如下所示:
<script>
    function f1(){ alert('hello world'); };
</script>
<a onclick="f1()">test</a>我想用这个函数做一些事情,比如将它绑定到另一个事件。我在jQuery上试过这个:
var defaultFunction = $('a').attr('onclick');但是defaultFunction被定义为字符串,而不是函数本身。我可以用eval(defaultFunction)来评估它,但这让我觉得很脏。有什么方法可以访问函数本身,而不是字符串?
也就是说,我希望能够调用defaultFunction()并执行绑定到a元素的默认onclick行为。(在本例中,请调用f1())。
这里有一个小提琴试图做到这一点,但失败了。
发布于 2014-08-27 16:30:26
它只是onclick属性,不需要jQuery:
<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>发布于 2014-08-27 16:29:35
如果这个document.getElementById("id_of_your_element").onclick对您有帮助,它将返回click处理程序,您可以调用它,但是手动引发事件是不对的。
发布于 2014-08-27 16:30:48
就像这样:
示例
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!');
});https://stackoverflow.com/questions/25532182
复制相似问题