Изменение обработчика событий с помощью рекурсии - PullRequest
0 голосов
/ 09 июня 2011

Я не уверен, как это можно сделать, и попробовал следующее безрезультатно:

someElement.onmouseover=function(event) {
 if(!event) { e = window.event; }
 if(event.typeof=="mouseup") {
  //change what [i]this[/i] returns (this = null doesn't work either)
  //and how could I find a way to allow this event handler to alter itself under the       
 }
}

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 09 июня 2011
> someElement.onmouseover=function(event)
> {  if(!event) { e = window.event; } 

Я думаю, что вы имеете в виду:

  event = window.event

.

> if(event.typeof=="mouseup") {  

Я думаю, что вы имеете в виду:

  if (event.type == 'mouseup') {

.

> //change what [i]this[/i] returns
> (this = null doesn't work either)  

Значение ключевого слова этой функции устанавливается во время создания экземпляра, вы не можете его изменить.

> //and how could I find a way to allow
> this event handler to alter itself
> under the         } }

Изменить себя?Он может установить другого слушателя , если вы это имеете в виду:

this.onmouseover = someOtherFunction;

Редактировать

Играть с этим:

<script>
  function showType(e) {
    console.log(e.type);
  }
</script>

<input
  onclick="showType(event);"
  onmouseover="showType(event);"
  onmouseout="showType(event);"
  onmousedown="showType(event);"
  onmouseup="showType(event);"
  onkeydown="showType(event);"
  onkeyup="showType(event);"
  onkeypress="showType(event);"
  value="Do stuff in here"
>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...