Как динамически изменить обработчик onClick? - PullRequest
48 голосов
/ 30 октября 2008

Я уверен, что есть миллион постов по этому поводу, но удивительно, у меня проблемы с поиском чего-либо.

У меня есть простой скрипт, в котором я хочу установить обработчик onClick для ссылки <A> при инициализации страницы.

Когда я запускаю это, я немедленно получаю окно с предупреждением 'foo', в котором я ожидал получить предупреждение только при нажатии на ссылку.

Что за глупость я делаю не так? (Я пробовал click = и onClick =) ...

<script language="javascript">

    function init(){

        document.getElementById("foo").click = new function() { alert('foo'); };
    }

</script>

<body onload="init()">
    <a id="foo" href=#>Click to run foo</a>
</body>

Редактировать: Я изменил свой принятый ответ на ответ jQuery. Ответ ' Már Örlygsson ' технически является правильным ответом на мой первоначальный вопрос (click должен быть onclick и new должен быть удален), но я настоятельно не рекомендую любому использовать 'document.getElementById (...) непосредственно в своем коде - и использовать вместо него jQuery .

Ответы [ 11 ]

0 голосов
/ 16 марта 2010

Пример YUI, приведенный выше, действительно должен быть:

<script>
  YAHOO.util.Event.onDOMReady(function() {   
     Dom.get("foo").onclick =  function (){alert('foo');};
  });
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...