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

标签 javascript jquery html

我有一堆 <a>页面上的标签看起来像

 <a href="#" id="001" onclick="fnaaa();" >...</a>
  ...
 <a href="#" id="002" onclick="fnaba();" >...</a>
  ...
 <a href="#" id="003" onclick="fncda();" >...</a>


 //sometimes maybe like this
 <a href="#" id="004" onclick="fnagg(); return false;" >...</a>
  ...

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

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

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

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

但是我该如何调用这个 funcToCall?记住 funcToCall 可能不仅仅是一个函数名 ex。 “fnagg();返回假;”

最佳答案

首先ID属性有some restrictions ,一个是它必须以字母开头。修复该问题后,我建议不要使用内联 onclick 处理程序。

$("#ID_HERE").click(function(e) {
  fnaaa();
  e.preventDefault();
});

然后就可以轻松触发了:

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

但是,如果您绝对必须使用难看的onclick,您可以调用它like this :

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

关于javascript - 以编程方式调用 onclick 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15165897/

相关文章:

javascript - 在 typescript 内部模块中使用外部 typescript 库

javascript - 检测溢出 :hidden page? 中的滚动尝试

javascript - Ajax OnFailure 函数

javascript - 使 Bootstrap 进度条从 0 到 100% 动画

javascript - 本地存储 : Textarea showing "undefined" on refresh

javascript - AngularJS 生成的嵌套列表的行为不符合预期

javascript - 使用 jQuery 选择附加的链接按钮

javascript - 多列表显示隐藏

javascript - 使用javascript取消选择文本框的内容

javascript - 替换字符串中的 onclick