JQuery получить Tager от события - PullRequest
1 голос
/ 13 октября 2019

Я использую Hexagon.js и мне нужно получить .html () вызывающей стороны. Если я делаю что-то вроде event.target и начинаю двигаться с помощью ползунка, пока курсор находится на ползунке, он работает просто отлично, но если я перемещаю курсор в другое место (и все еще держу ползунок, как и любой другой, перетаскиваяэто с курсором и перемещением вне поля ползунка), я получу данные об этом элементе, который я в данный момент нахожу выше. Мне нужны только данные вызывающего абонента, а не все остальные.

$(".slider").each(function() {
  slider = new hx.Slider(this, {max:100});

  slider.on('change', function(value){
    var target = $( event.target );
    console.log(target);
  });
});

Спасибо за любую гепатиту.

1 Ответ

0 голосов
/ 13 октября 2019

Не видя html, немного сложно ответить, но хорошо, в соответствии с документами вы должны инициализировать ползунок с элементом html, и вы делаете.

new hx.Slider(this, {max:100});

this в этой строке - элемент html, поэтому вы можете просто использовать его.

Теперь проблема в том, что, поскольку вы используете синтаксис function () {...}, каждая функция имеет свой собственный this.

Вы можете использовать функцию стрелки (у них нет своего this) в качестве .on(...) обратного вызова (если он работает нормально, потому что иногда это не работает с JQuery) или сохранить текущее значение в переменной.

$(".slider").each(function(){

  const slide = this;

  const slider = new hx.Slider(
     slide,
     {max:100}
   );

  slider.on('change', function(value){
    console.log(slide, `is html element!`);
    console.log(value, `is the value that has just changed!`);
  });

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...