Вопрос по javascript – Что такое click () в JavaScript

25

Я играл с JavaScript в FireFox и столкнулся с проблемой, которая проиллюстрирована в следующем примере:

<HEAD>
<script type="text/javascript">
function click()
{
    alert("click");
}

</script>
</HEAD>

<BODY>

<input type="radio" onclick="click()">
</BODY>

Когда я нажимаю на кнопку радио, ничего не происходит, и никаких ошибок (в Firebug)

Если я изменю название функции на do_click, и поменяю onclick, то получу предупреждение.

Итак, вопрос: что происходит? щелчок не является зарезервированным словом или существующим символом

Ваш Ответ

5   ответов
0

что метод click () в javascript имитирует нажатие кнопки. Так что это должно быть своего рода бесконечный цикл ...

Отредактировано, чтобы добавить: ПроверитьMSDN для документации метода щелчка

37

как если бы он находился вwith блок.

Поэтому в рамкахonclick обработчик, имяclick разрешает к элементуclick метод.

Это может бытьпродемонстрировал написавalert(nodeName) в обработчике

Есть очень много свойств, свисающих с узла DOM. Если обработчик щелчка просто пытался установить глобальную переменную, имя которой совпадает с одним из свойств узлов (например,innerHTML), Что ж....дерьмо. Crescent Fresh
Святой * яникогда знал это. Даже ведет себя так же в IE. Это кажется таким опасным сейчас .... Crescent Fresh
Еще одна причина не помещать какой-либо реальный код во встроенный обработчик. SLaks
Я тоже, пока не прочитал вопрос. SLaks
0

зарезервированное ключевое слово вне контекста встроенного обработчика событий, как ответил Слакс.

То есть метод click, определенный в вопросе, действителен. Присоединение обработчика событий «извне» будет работать. Например. используя jQuery:

$('input').click(click);
0

что click () - это зарезервированное имя процедуры, поэтому вы не можете перезаписать его. Объясняет, почему смена имени и ничего больше не заставляет его работать.

«не могу перезаписать» не правильно. просто цель другая. bryantsai
8

нажмите () метод.

Следующее покажет, что щелчок является нативным методом:

<input type="radio" onclick="alert(click.toString())">

Вы можете зарегистрировать свою функцию щелчка как обработчик события следующим образом. В обработчикеthis будет ссылаться на элемент HTML.

<input type="radio" id="foo" >

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

Превосходная серия статей о событиях браузера наhttp://www.quirksmode.org/js/introevents.html

Похожие вопросы