Поскольку я выяснил, что new className(param)
не имеет прямого отношения к instance(param){}
, когда он передал функцию constructor
, я пытался передать класс HTML в instance method
без изменений.но он продолжает обнаруживать псевдокласс param
.
Это мой код:
class Slider {
'use strict';
istouchStart(e) {
console.log(e.target);
this.coordX = e.touches[0].clientX;
return this.coordX;
}
constructor(target) {
// Variables
var _ = this;
console.log(target);
$(target).stop(true, true).on({
touchstart:_.istouchStart,
touchmove:_.istouchMove,
touchend:_.istouchEnd
});
}
}
const image = new Slider('.inline-grid');
div {
position: relative;
}
.inline-grid {
margin: 0 auto;
width: 2560px;
border: 1px solid black;
display: flex;
flex-flow: row;
overflow: hidden;
}
.wrap {
width: 100%;
display: flex;
flex-flow: row;
}
.cell {
display: flex;
flex-flow: column;
flex-shrink: 0;
width: 100%;
height: 200px;
}
.orange {
background-color: orange;
}
<div class="inline-grid">
<div class="wrap">
<div class="cell orange"></div>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
как мне получить .inline-grid
из istouchStart
метода?
это вторая попытка с использованием return
и функция стрелки, но эта не работает без отображения ошибки.:
static istouchStart() {
return (e) => {
console.log(e.target);
this.coordX = e.touches[0].clientX;
}
}