Skip to content

Instantly share code, notes, and snippets.

@bugcloud
Created April 24, 2014 07:40
Show Gist options
  • Select an option

  • Save bugcloud/11245256 to your computer and use it in GitHub Desktop.

Select an option

Save bugcloud/11245256 to your computer and use it in GitHub Desktop.
The usage snippet of mixitup
<!DOCTYPE html>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=2">
<title>scrollable-arrow</title>
<style>
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-o-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
</style>
<div class="sortable-box">
<div class="sort-item mix" data-order-by="1">
<select class="sort" name="field-1">
<option value="">Please select</option>
<option value="1" selected>1st</option>
<option value="2">2nd</option>
<option value="3">3rd</option>
<option value="4">4th</option>
<option value="5">5th</option>
</select>
</div>
<div class="sort-item mix" data-order-by="2">
<select class="sort" name="field-2">
<option value="">Please select</option>
<option value="1">1st</option>
<option value="2" selected>2nd</option>
<option value="3">3rd</option>
<option value="4">4th</option>
<option value="5">5th</option>
</select>
</div>
<div class="sort-item mix" data-order-by="3">
<select class="sort" name="field-3">
<option value="">Please select</option>
<option value="1">1st</option>
<option value="2">2nd</option>
<option value="3" selected>3rd</option>
<option value="4">4th</option>
<option value="5">5th</option>
</select>
</div>
<div class="sort-item mix" data-order-by="4">
<select class="sort" name="field-4">
<option value="">Please select</option>
<option value="1">1st</option>
<option value="2">2nd</option>
<option value="3">3rd</option>
<option value="4" selected>4th</option>
<option value="5">5th</option>
</select>
</div>
<div class="sort-item mix" data-order-by="5">
<select class="sort" name="field-5">
<option value="">Please select</option>
<option value="1">1st</option>
<option value="2">2nd</option>
<option value="3">3rd</option>
<option value="4">4th</option>
<option value="5" selected>5th</option>
</select>
</div>
</div>
<hr>
<div class="sortable-box">
<div class="sort-item mix" data-order-by="1">
<select class="sort" name="field-1">
<option value="">Please select</option>
<option value="1" selected>1st</option>
<option value="2">2nd</option>
<option value="3">3rd</option>
<option value="4">4th</option>
<option value="5">5th</option>
</select>
</div>
<div class="sort-item mix" data-order-by="2">
<select class="sort" name="field-2">
<option value="">Please select</option>
<option value="1">1st</option>
<option value="2" selected>2nd</option>
<option value="3">3rd</option>
<option value="4">4th</option>
<option value="5">5th</option>
</select>
</div>
<div class="sort-item mix" data-order-by="3">
<select class="sort" name="field-3">
<option value="">Please select</option>
<option value="1">1st</option>
<option value="2">2nd</option>
<option value="3" selected>3rd</option>
<option value="4">4th</option>
<option value="5">5th</option>
</select>
</div>
<div class="sort-item mix" data-order-by="4">
<select class="sort" name="field-4">
<option value="">Please select</option>
<option value="1">1st</option>
<option value="2">2nd</option>
<option value="3">3rd</option>
<option value="4" selected>4th</option>
<option value="5">5th</option>
</select>
</div>
<div class="sort-item mix" data-order-by="5">
<select class="sort" name="field-5">
<option value="">Please select</option>
<option value="1">1st</option>
<option value="2">2nd</option>
<option value="3">3rd</option>
<option value="4">4th</option>
<option value="5" selected>5th</option>
</select>
</div>
</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="js/jquery.mixitup.min.js"></script>
<script>
var App = {};
App.sortableBox = function(selector) {
$(selector).each(function() {
var $sortable = $(this);
$sortable.mixItUp({
layout: {
display: 'block'
}
});
$sortable.find('select').on('change', function() {
var $that_ = $(this);
var val = parseInt($that_.val(), 10);
if (isNaN(val)) val = 0;
$that_.parents('.sort-item:first').attr('data-order-by', val);
$sortable.find('select').each(function() {
var $select = $(this);
var selectVal = parseInt($select.val(), 10);
if (isNaN(selectVal)) selectVal = 0;
if (this !== $that_.get(0) && selectVal >= val && $sortable.find('.sort-item[data-order-by="'+ selectVal +'"]').length != 1) {
$select.val(selectVal + 1);
$select.parents('.sort-item:first').attr('data-order-by', selectVal + 1);
}
});
$sortable.mixItUp('sort', 'order-by:asc');
});
});
};
$(function() {
App.sortableBox('.sortable-box');
});
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment