Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.11.2014, 21:26
Интересующийся
Отправить личное сообщение для Vladimir93 Посмотреть профиль Найти все сообщения от Vladimir93
 
Регистрация: 08.11.2014
Сообщений: 27

проблема с onclick
Добавление к предыдущему посту. Создаем кнопку с помощью метода. Если метод без аргументов, то вызов выглядит примерно так
btn.onclick = sozdaemTriKnopki;
где sozdaemTriKnopki - это метод, который создает метод(причем почему без (), мне не ясно). Но когда в методе есть аргументы, например
btn.onclick = sozdaemTriKnopki(arg)
то выполнятся этот метод будет сразу при загрузке, а не при нажатии на кнопку. Как сделать, чтобы при нажатии?

Последний раз редактировалось Vladimir93, 22.11.2014 в 21:41.
Ответить с цитированием
  #2 (permalink)  
Старый 22.11.2014, 21:42
Интересующийся
Отправить личное сообщение для Vladimir93 Посмотреть профиль Найти все сообщения от Vladimir93
 
Регистрация: 08.11.2014
Сообщений: 27

Вопрос снимается. Если кому интересно, то нужно сделать так
btn.onclick = function() {sozdaemTriKnopki(arg);};
Ответить с цитированием
  #3 (permalink)  
Старый 22.11.2014, 22:11
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Еще можно так:
<!DOCTYPE HTML>
<html>
  <head><meta charset="windows-1251" /> </head>
  <body>
<button>foo</button>
<script>
mkButton=function(innerHTML){
  var button=document.createElement("button")
  button.innerHTML=innerHTML
  document.body.appendChild(button)
}
mkThreeButtons=function(innerHTML){
   return function(){
      mkButton(innerHTML)
      mkButton(innerHTML)
      mkButton(innerHTML)
   }
}
document.querySelector("button").onclick=mkThreeButtons("foo")
</script>
  </body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 23.11.2014, 11:30
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от Vladimir93
btn.onclick = sozdaemTriKnopki(arg)
Срав ни:

var some_var = sozdaemTriKnopki(arg);

проперь .onclick - обычная переменная в объекте. Туда все и запишется сразу.

Сообщение от Vladimir93
btn.onclick = sozdaemTriKnopki;
Так и делают. Аргументы можно засунуть заранее в саму кнопку, скажем в data-arg. Который достанет функция и сделает что надо.

Или да, присваивают безымянную функцию переменной,

срав ни

var some_var = function(arg){};
Ответить с цитированием
  #5 (permalink)  
Старый 23.11.2014, 11:32
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от krutoy
Еще можно так:
Однохуйственно тому что ТС нашел, поскольку контекст не цепляется в кложе.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с onClick в IE 10 molnij Events/DOM/Window 20 06.04.2013 06:09
Проблема с onclick Bubble Общие вопросы Javascript 2 25.08.2012 15:51
Проблема с onclick sitebuilder Общие вопросы Javascript 3 18.06.2012 11:31
Проблема с обработкой OnClick suslik90 Events/DOM/Window 1 11.05.2012 21:09
Проблема с onclick Reflexion Events/DOM/Window 9 25.10.2009 22:54