В настоящее время я интегрирую плагин jQuery, который называется RangeSlider JS.

Это функция, в которой я запускаю плагин:

$('input[type="range"]').rangeslider({
    param: true, 
    param2: false,

    onInit: function() {    
        if ($(this).attr('name') === 'someName') {
            // do something ... 
        },
    }
});

Теперь, поскольку у меня есть несколько входов типа «диапазон», для которых я использую плагин, мне нужно различать каждый вход. Я пытаюсь сделать это, получая входной атрибут name, но похоже, что $(this) не работает изнутри этой функции.

Есть идеи, как заставить работать селектор $(this)? $(this) должен относиться к input[type="range"].

0
Frank 22 Окт 2015 в 00:50

2 ответа

Лучший ответ

Вы можете использовать jQuery.each() для итерации результатов и сохранения ссылки на текущий элемент управления.

$('input[type="range"]').each(function() {
  var that = $(this);
  that.rangeslider({
    param: true, 
    param2: false,
    onInit: function() {    
      if (that.attr('name') === 'someName') {
        // do something ... 
      },
    }
  });      
});
1
Dave 21 Окт 2015 в 21:58