Допустим есть код (
примитивный пример для краткости и передачи смысла)
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-то уже не прокатывает.