javascript – 以编程方式调用onclick属性

前端之家收集整理的这篇文章主要介绍了javascript – 以编程方式调用onclick属性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一堆< a>页面上的标签看起来像
  1. <a href="#" id="001" onclick="fnaaa();" >...</a>
  2. ...
  3. <a href="#" id="002" onclick="fnaba();" >...</a>
  4. ...
  5. <a href="#" id="003" onclick="fncda();" >...</a>
  6.  
  7.  
  8. //sometimes maybe like this
  9. <a href="#" id="004" onclick="fnagg(); return false;" >...</a>
  10. ...

现在我将id作为查询字符串传递给页面,所以我原本想做类似的事情

  1. $('a[id="' + id + '"]').click();
  2. $('a[id="' + id + '"]').trigger("click");

事实证明这两个都是不允许的,所以如果我有id,我怎么能调用onclick属性中写的函数?我知道我可能会这样

  1. var funcToCall = $('a[id="' + id + '"]').attr('onclick');

但是如何调用此funcToCall?记住funcToCall可能只是一个函数名ex. “fnagg();返回false;”

解决方法

首先,ID属性some restrictions,其中一个是必须以字母开头.修复之后,我建议不要使用内联onclick处理程序.
  1. $("#ID_HERE").click(function(e) {
  2. fnaaa();
  3. e.preventDefault();
  4. });

然后你可以轻松触发它:

  1. $("#ID_HERE").triggerHandler("click");

但是,如果你绝对必须使用丑陋的onclick,你可以调用like this

  1. <a id="foo" href="#" onclick="alert('test');">Test</a>
  2. var el = document.getElementById('foo');
  3. el.onclick();

猜你在找的JavaScript相关文章