Как изменить onClick обработчик динамично?

50
задан Community 23 May 2017 в 01:46
поделиться

7 ответов

jQuery:

$('#foo').click(function() { alert('foo'); });

Или если Вы не хотите, чтобы он перешел по ссылке href:

$('#foo').click(function() { alert('foo'); return false; });
23
ответ дан Darryl Hein 7 November 2019 в 10:32
поделиться

Попытка:

document.getElementById("foo").onclick = function (){alert('foo');};
69
ответ дан nickf 7 November 2019 в 10:32
поделиться

Используйте .onclick (весь нижний регистр). Как так:

document.getElementById("foo").onclick = function () {
  alert('foo'); // do your stuff
  return false; // <-- to suppress the default link behaviour
};

На самом деле, Вы, вероятно, найдете себя путем более обеспеченное использование некоторой хорошей библиотеки (я рекомендую jQuery по нескольким причинам) разбудить Вас и выполнение и запись чистого JavaScript.

перекрестный браузер (в) совместимости является правильным адом для контакта с для любого - уже не говоря о ком-то, кто только запускается.

35
ответ дан Már Örlygsson 7 November 2019 в 10:32
поделиться

Я соглашаюсь, что использование jQuery является наилучшим вариантом. Необходимо также избегать использования функции onload тела и использовать готовую функцию jQuery вместо этого. Что касается слушателей события, они должны быть функциями, которые берут один аргумент:

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

или в jQuery:

$('#foo').click(function(event) { alert('foo'); }
2
ответ дан kgiannakakis 7 November 2019 в 10:32
поделиться

Вот дубликат YUI к сообщениям jQuery выше.

<script>
  YAHOO.util.Event.onDOMReady(function() {   
    document.getElementById("foo").onclick =  function (){alert('foo');};
  });
</script>
1
ответ дан blak3r 7 November 2019 в 10:32
поделиться

На днях я перепробовал более или менее все остальные решения, но ни одно из них не работало на меня, пока я не попробовал это:

var submitButton = document.getElementById('submitButton');
submitButton.setAttribute('onclick',  'alert("hello");');

Насколько я могу судить, оно работает идеально.

10
ответ дан 7 November 2019 в 10:32
поделиться

Приведенный выше пример YUI на самом деле должен выглядеть так:

<script>
  YAHOO.util.Event.onDOMReady(function() {   
     Dom.get("foo").onclick =  function (){alert('foo');};
  });
</script>
0
ответ дан 7 November 2019 в 10:32
поделиться
Другие вопросы по тегам:

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