Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.01.2016, 20:59
Профессор
Отправить личное сообщение для Keramet Посмотреть профиль Найти все сообщения от Keramet
 
Регистрация: 30.12.2015
Сообщений: 194

Можно ли "повесить" внутренние функции на кнопки?
Всем привет!
Вопрос такой: вот есть ДжС файл, который просто передвигает кнопку (типа анимация ). Хочу нажать на кнопку, и она начинает двигаться. За начало "движения" отвечает функция start() Как задать её обработчику onclick на HTML странице?
Так не работает:
<input type='button' id="btn" onclick='startMove()'>

var main = function () {
	"use strict";
	var tmr;
	function stopMove ()    { clearInterval(tmr); }
	function startMove ()	{ tmr = setInterval(moveBtn, 24); }
	
	var moveBtn = function () {
		var btn = $("#btn");
		var left = parseInt( btn.css("margin-Left") ) + 1;
		btn.css("margin-Left", left + "px");
	};
	return startMove;
};
$(document).ready(main);

Последний раз редактировалось Keramet, 04.01.2016 в 21:20.
Ответить с цитированием
  #2 (permalink)  
Старый 04.01.2016, 21:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Keramet,
на всякий случай start плохое имя для функции.
Ответить с цитированием
  #3 (permalink)  
Старый 04.01.2016, 21:17
Профессор
Отправить личное сообщение для Keramet Посмотреть профиль Найти все сообщения от Keramet
 
Регистрация: 30.12.2015
Сообщений: 194

startMove подойдёт? Исправил.
Ответить с цитированием
  #4 (permalink)  
Старый 04.01.2016, 21:19
Профессор
Отправить личное сообщение для Keramet Посмотреть профиль Найти все сообщения от Keramet
 
Регистрация: 30.12.2015
Сообщений: 194

рони,
Исправление start() на startMove() не помогло шутка
Ответить с цитированием
  #5 (permalink)  
Старый 04.01.2016, 21:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Keramet,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
  var a;
     $(function(){
     var main = function () {
	"use strict";
	var tmr;
	function stop()	    { clearInterval(tmr); }
	function st()	{ tmr = setInterval(moveBtn, 24); }

	var moveBtn = function () {
		var btn = $("#btn");
		var left = parseInt( btn.css("margin-Left") ) + 1;
		btn.css("margin-Left", left + "px");
	};
	return st;
};
  // a = main()
   $("#btn").on({click : main()})
});


  </script>
</head>

<body>
<input type='button' id="btn"  value="click">
<!--<input type='button' id="btn" onclick='a()'>-->



</body>

</html>
Ответить с цитированием
  #6 (permalink)  
Старый 04.01.2016, 21:30
Профессор
Отправить личное сообщение для Keramet Посмотреть профиль Найти все сообщения от Keramet
 
Регистрация: 30.12.2015
Сообщений: 194

рони,
У вас // a = main() вместо моего $(document).ready(main);?
Ответить с цитированием
  #7 (permalink)  
Старый 04.01.2016, 21:32
Профессор
Отправить личное сообщение для Keramet Посмотреть профиль Найти все сообщения от Keramet
 
Регистрация: 30.12.2015
Сообщений: 194

или конструкция $(function(){.... то же, что и $(document).ready(main); ?
Ответить с цитированием
  #8 (permalink)  
Старый 04.01.2016, 21:37
Профессор
Отправить личное сообщение для Keramet Посмотреть профиль Найти все сообщения от Keramet
 
Регистрация: 30.12.2015
Сообщений: 194

а где сам вызов st() из строки 18:
function st()   { tmr = setInterval(moveBtn, 24); }

и не совсем понял, зачем
$("#btn").on({click : main()})

мы ж на кнопку должны вроде повесить st() ?
Ответить с цитированием
  #9 (permalink)  
Старый 04.01.2016, 21:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от Keramet
или конструкция $(function(){.... то же, что и $(document).ready(main); ?
да
Сообщение от Keramet
$("#btn").on({click : main()})

мы ж на кнопку должны вроде повесить st() ?
это и устанавливает обработчик или раскоментируйте строки а эту строку уберите.
Ответить с цитированием
  #10 (permalink)  
Старый 04.01.2016, 21:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от Keramet
У вас // a = main() вместо моего $(document).ready(main);?
логику вашего варианта я не осилил, поэтому предложил два варианта на выбор.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли передать переменую grid из одной функции в другую alexrzl ExtJS 1 16.11.2010 18:33
arguments вызвавшей функции mister_maxim Общие вопросы Javascript 4 12.10.2010 16:21
Кросс-браузерные функции B~Vladi Ваши сайты и скрипты 128 01.09.2009 17:11
Можно ли использовать функции в качестве свойства абс_позиционируемого объекта Newgen Элементы интерфейса 1 27.07.2009 14:40
Замыкание - это... Zeroglif Общие вопросы Javascript 11 06.03.2009 22:04