Skip to content
Snippets Groups Projects

Fix extend modifying original object / Fix race condition on instance.options

Files
2
+ 12
3
@@ -93,8 +93,12 @@
var me = this;
var root = instance.root;
var userOptions = $.parse(root.dataset.splide);
var opts = $.extend(instance.options, userOptions);
var count = opts.count;
// Need to get a live copy of instance.options as it's modified elsewhere as this runs, and we also want a clone instead of modifying the original.
var getMergedOptions = function () {
return $.extend({}, instance.options, userOptions);
};
var append = function (prev, sel) {
var el = $.find(root, sel);
if ($.isElm(el)) {
@@ -115,6 +119,8 @@
});
instance.on('mounted.' + NICK + ' resized.' + NICK, function () {
var opts = getMergedOptions();
var count = opts.count;
$[count <= opts.perPage ? 'addClass' : 'removeClass'](root, IS_LESS);
$[count > 1 && opts.arrows ? 'addClass' : 'removeClass'](root, IS_ARROWED);
});
@@ -157,6 +163,8 @@
// Adds arrows down and or pagination inside arrows.
instance.on('arrows:mounted.' + NICK, function (prev, next) {
var opts = getMergedOptions();
if (prev === null) {
return;
}
@@ -208,7 +216,8 @@
if (listeners) {
$.each(listeners, function (listener) {
if (listener && typeof listener === 'function') {
var fn = listener(instance, instance.Components, o);
var opts = getMergedOptions();
var fn = listener(instance, instance.Components, opts);
if ('mount' in fn) {
fn.mount();
}
Loading