Показать сообщение отдельно
  #1 (permalink)  
Старый 22.08.2019, 10:29
Кандидат Javascript-наук
Отправить личное сообщение для dpts Посмотреть профиль Найти все сообщения от dpts
 
Регистрация: 12.05.2015
Сообщений: 111

Как в компоненте VUE обратиться к свойствам или методам этого компонента из функции
Допустим есть код (примитивный пример для краткости и передачи смысла)
Vue.component('ball', {
	data: function () {
		return {
			x:Number,
			y:Number
		}
	},
	template:`
		...................
	`,
	mounted:function(){
		// Пример с [url]https://learn.javascript.ru/drag-and-drop[/url]
			var ball = document.getElementById('ball');

			ball.onmousedown = function(e) {

			  var coords = getCoords(ball);
			  var shiftX = e.pageX - coords.left;
			  var shiftY = e.pageY - coords.top;

			  ball.style.position = 'absolute';
			  document.body.appendChild(ball);
			  moveAt(e);

			  ball.style.zIndex = 1000; // над другими элементами

			  function moveAt(e) {
			    ball.style.left = e.pageX - shiftX + 'px';
			    ball.style.top = e.pageY - shiftY + 'px';
			  }

			  document.onmousemove = function(e) {
			    moveAt(e);
			  };

			  ball.onmouseup = function() {
			    document.onmousemove = null;
			    ball.onmouseup = null;
			  };

			}

			ball.ondragstart = function() {
			  return false;
			};

			function getCoords(elem) {   // кроме IE8-
			  var box = elem.getBoundingClientRect();
			  return {
			    top: box.top + pageYOffset,
			    left: box.left + pageXOffset
			  };
			}
		// --------------------------------------------------
	},
	methods:{
		anymethod:function(param){
			
		}
	}
});

Вопрос, как из функции, обрабатывающей onmousedown или любой функции внутри нее обратиться к методу anymethod или к свойствам в data, this-то уже не прокатывает.
Ответить с цитированием