Как читать события JavaScript программно - PullRequest
0 голосов
/ 13 января 2010

Представьте, что у вас есть кнопка, подобная этой:

<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.

Любая помощь приветствуется ...

1 Ответ

4 голосов
/ 13 января 2010

Если вам нужно сделать это, вы можете реорганизовать свой код, чтобы вам больше не нужно было это делать. А пока вы можете использовать этот хак:

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

Атрибут 'onclick' фактически возвращает функцию, поэтому вызов ее с помощью () фактически выполняет эту функцию.

Если вы не хотите использовать jQuery, вам не нужно. Без него работают:

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

Кроме того, для любого из этих двух вы можете разбить его на две строки:

var clickFunc = $('#myButton').attr('onclick');
...
clickFunc();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...