Skip to content

Instantly share code, notes, and snippets.

@prajwal-stha
Last active December 27, 2018 09:24
Show Gist options
  • Select an option

  • Save prajwal-stha/97315f8b81dbc8d17fe76913901f1621 to your computer and use it in GitHub Desktop.

Select an option

Save prajwal-stha/97315f8b81dbc8d17fe76913901f1621 to your computer and use it in GitHub Desktop.
Sample Codes for The Module Pattern.
jQuery(document).ready(function($) {
'use strict';
var mblPPSeparateQty = {
addBtn: function() {
var topclass = '<div class="eci-add-to-cart-203204"><h5>Quantity:</h5>';
var inputgroup = '<div class="input-group"><span class="input-group-btn"><button type="button" class="btn btn-default btn-number" disabled="disabled" data-type="minus" data-field="quant[1]"><span class="eci-icon eci-icon-minus"></span></button></span><input type="text" name="quant[1]" class="form-control input-number" value="1" min="1" max="100000000"><span class="input-group-btn"><button type="button" class="btn btn-default btn-number" data-type="plus"data-field="quant[1]"><span class="eci-icon eci-icon-plus"></span></button></span></div>';
var btn = '<input class="eci-add-to-cart-btn" value="Add to Cart" id="ysw-add-to-cart" type="submit">';
var endclass = '</div>'
var atc = topclass + inputgroup + btn + endclass;
$('#cf-item-details').children('#ysw-cart').children('#cf-atc').after(atc);
},
swapValue: function() {
$(".input-number").bind("change paste keyup", function() {
$('#cf-item-details').children('#ysw-cart').children('#cf-atc').children('.qty-input').val($('.input-number').val());
});
$('.btn-number').click(function() {
$('#cf-item-details').children('#ysw-cart').children('#cf-atc').children('.qty-input').val($('.input-number').val());
});
$(document).on("scroll", function() {
var mainatc_val = $('#cf-item-details').children('#ysw-cart').children('#cf-atc').children('.qty-input').val();
var added_atc = $('.input-number').val();
if (mainatc_val != added_atc) {
$('.input-number').val($('#cf-item-details').children('#ysw-cart').children('#cf-atc').children('.qty-input').val());
}
});
},
pluginCode: function() {
$('.btn-number').click(function(e) {
e.preventDefault();
fieldName = $(this).attr('data-field');
type = $(this).attr('data-type');
var input = $("input[name='" + fieldName + "']");
var currentVal = parseInt(input.val());
if (!isNaN(currentVal)) {
if (type == 'minus') {
if (currentVal > input.attr('min')) {
input.val(currentVal - 1).change();
}
if (parseInt(input.val()) == input.attr('min')) {
$(this).attr('disabled', true);
}
} else if (type == 'plus') {
if (currentVal < input.attr('max')) {
input.val(currentVal + 1).change();
}
if (parseInt(input.val()) == input.attr('max')) {
$(this).attr('disabled', true);
}
}
} else {
input.val(0);
}
});
$('.input-number').focusin(function() {
$(this).data('oldValue', $(this).val());
});
$('.input-number').change(function() {
minValue = parseInt($(this).attr('min'));
maxValue = parseInt($(this).attr('max'));
valueCurrent = parseInt($(this).val());
name = $(this).attr('name');
if (valueCurrent >= minValue) {
$(".btn-number[data-type='minus'][data-field='" + name + "']").removeAttr('disabled')
} else {
/*alert('Sorry, the minimum value was reached');*/
$(this).val($(this).data('oldValue'));
}
if (valueCurrent <= maxValue) {
$(".btn-number[data-type='plus'][data-field='" + name + "']").removeAttr('disabled')
} else {
/*alert('Sorry, the maximum value was reached');*/
$(this).val($(this).data('oldValue'));
}
});
},
init: function() {
var module = this;
if($('.discontinued').length){
$('#cf-item-details .add-to-cart').css("visibility", 'show');
$('#cf-atc').addClass('atcdiscontinue');
}
else{
$('#cf-item-details .add-to-cart').css("visibility", 'hidden');
module.addBtn();
module.swapValue();
module.pluginCode();
}
}
}.init();
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment