0

想象一下,你有一个这样的按钮:

<input name="myButton" type="button" value="button" onclick="return test();" >

其中测试函数如下:

function test(){
  // do something
  return true; // based on some logic return boolean
}

现在假设,我不知道为 onclick 事件设置了什么,并且在运行时我需要读取函数或设置为 onclick 的任何代码并运行它。这是一个例子:

var btn = getElementById('myButton');
var btnOnClickFunc = btn.onclick;
if (btnOnClickFunc) {
    // do something
}

我知道这不起作用,这实际上是我的问题。如何在运行时读取此示例中按钮的 onclick 事件?

这种情况的一个示例是稍后使用 jQuery 将 onclick 附加到按钮。

4

1 回答 1

4

如果您需要这样做,您可能希望最终重构您的代码,以便您不再需要这样做。同时,您可以使用此 hack:

$('#myButton').attr('onclick')();

该属性'onclick'实际上返回一个函数,因此调用它()实际上会执行该函数。

如果您不想使用 jQuery,则不必这样做。没有它,以下工作:

document.getElementById('myButton').onclick();

此外,对于这两个中的任何一个,您都可以将其分成两行:

var clickFunc = $('#myButton').attr('onclick');
...
clickFunc();
于 2010-01-13T00:15:40.240 回答