Я использую 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, они работают только в первый раз правильно, то не будут перезагружены правильно, и они по-прежнему публикуют старый результат.
Если поместить их вне инициализации, как:
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();
}
});
они перестают работать ...
есть идеи, чтобы они работали?