When I am using the function initSwitchery2, I am not being able to change the text for .js-check-change-field-7 for onchange event when .js-switch-7 is checked.
$(document).ready(function() {
handleSwitcheryElements();
});
function initSwitchery2($class, $color, $speed, $size, $secondarycolor, $class2) {
var elems = Array.prototype.slice.call(document.querySelectorAll($class));
var changeFields = Array.prototype.slice.call(document.querySelectorAll($class2));
elems.forEach(function(el) {
if ($(el).data('switchery') != true) {
new Switchery(el, { color: $color, speed: $speed, size: $size, secondaryColor: $secondarycolor });
}
});
elems.onchange = function() {
if ($($class).is(':checked')) {
changeFields.innerText = "Afficher";
$($class2).removeClass("btn-danger").addClass("btn-success");
} else {
changeFields.innerText = "Masquer";
$($class2).removeClass("btn-success").addClass("btn-danger");
}
};
}
handleSwitcheryElements = function() {
initSwitchery2('.js-switch-7', '#00ACAC', '0.3s', 'small', '#ff5b57', '.js-check-change-field-7');
};
--html--
<input type="checkbox" data-render="switchery" data-theme="blue" class="js-switch-7 text-right" data-change="check-switchery-state-text" />
<a href="#" class="btn btn-xs btn-danger disabled m-l-5 js-check-change-field-7" data-id="switchery-state-text">Masquer</a>
you have to use native
.addEventListener/ or.onusing jquerySo instead of
Use with Js the first element
Or using jquery by Setting your event as bellow :
If you want to apply this last to all your check boxes :
add a unique id for each of your
aelement and add this last as a data attribute for your inputexample for
a ->id="a1" its input -> data-id-target="a1" and so on .Bellow a working example :