Обновление ionRangeSlider от
Я использую ionRangeSlider как компонент модального загрузчика, который я использую для редактирования некоторых записей таблицы. Поэтому мне нужно инициализировать его внутри вызываемой функции, которая помещает значения в модальную форму.
это "функция обновления":
function edit(el) {
id=$(el).parent().siblings('#degree_id').html();
nome=$(el).parent().siblings('#degree_nome').html();
cognome=$(el).parent().siblings('#degree_cognome').html();
email=$(el).parent().siblings('#degree_mail').html(); votazione=$(el).parent().siblings('#degree_votazione').find('div').html(); lode=$(el).parent().siblings('#degree_votazione').find('#degree_lode').html();
$('#id_edit').val(id);
$('#nome_edit').val(nome);
$('#cognome_edit').val(cognome);
console.log(votazione);
var select = $('#votazione_edit');
select.ionRangeSlider({
min: 0,
max: 110,
from: votazione,
grid: true,
step: 1,
prettify_enabled: true,
}
При первом вызове функции инициализируйте ползунок с правильным значением "from", но если я закрою модальное значение, то у ползунка всегда будет одинаковое значение "from", даже если "votazione" отличается! Я проверяю это с помощью console.log(votazione) в браузере consolle.
Сделав много попыток, я обнаружил, что этот метод может делать то, что здесь не работает:
select.data('ionRangeSlider').update({
from: votazione
});
эта функция находится за пределами ползунка init / start, но заставляет его работать с правильным значением "from", установленным var "votazione". В документах они называются "открытые методы". Теперь моя проблема в том, что id хотел бы контролировать некоторые события, и я добавил 2 метода, таких как:
onStart: function (data) {
if(data.from==110)
{
$('#lode_edit').show();
if(lode==true){
$('#lode_edit').prop('checked', true);
}
}else{
$('#lode_edit').hide();
}
},
onChange: function (data) {
// Called every time handle position is changed
console.log(data.from);
if (data.from == 110) {
$('#lode_edit').show();
} else {
$('#lode_edit').hide();
}
},
Но если поместить их в метод init, они будут работать правильно только в первый раз, тогда они не будут перезагружены правильно, и они по-прежнему публикуют старый результат. Если поместить их вне init, например:
select.on('Start', function (data) {
if(data.from==110)
{
$('#lode_edit').show();
if(lode==true){
$('#lode_edit').prop('checked', true);
}
}else{
$('#lode_edit').hide();
}
});
select.on('Change', function (data) {
// Called every time handle position is changed
console.log(data.from);
if (data.from == 110) {
$('#lode_edit').show();
} else {
$('#lode_edit').hide();
}
});
они перестают работать...
Любая идея сделать их работает?