Advertisement
Guest User

Untitled

a guest
Dec 28th, 2014
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.54 KB | None | 0 0
  1. <div class="social-option">
  2. <select name="hex_theme_options[social-service-1]">
  3. <option selected="selected" value="0"></option>
  4. <option value="facebook">facebook</option>
  5. <option value="twitter">twitter</option>
  6. <option value="linkedin">linkedin</option>
  7. <option value="e-mail">e-mail</option>
  8. <option value="phone">phone</option>
  9. <option value="instagram">instagram</option>
  10. <option value="flickr">flickr</option>
  11. <option value="dribbble">dribbble</option>
  12. <option value="skype">skype</option>
  13. <option value="picasa">picasa</option>
  14. <option value="google-plus">google-plus</option>
  15. <option value="forrst">forrst</option>
  16. </select>
  17. </div>
  18.  
  19. (function($){
  20. $(document).ready(function() {
  21.  
  22. var siblings = {
  23. lock: function (newSelected){
  24. var selectedSiblings = $('.social-option select').find("option[value=" + newSelected.val() + "]");
  25. selectedSiblings.not(newSelected).attr('disabled', 'disabled');
  26. },
  27. unlock: function (oldSelected){
  28. var selectedSiblings = $('.social-option select').find("option[value=" + oldSelected.val() + "]");
  29. selectedSiblings.removeAttr('disabled');
  30. },
  31. unlockZero: function (){
  32. $('.social-option select').find("option[value='0']").removeAttr('disabled');
  33. }
  34. };
  35.  
  36.  
  37. function checkSiblings(oldSelected, newSelected) {
  38. if (oldSelected === '0') {
  39. siblings.lock(newSelected);
  40. } else if (newSelected === '0') {
  41. siblings.unlock(oldSelected);
  42. } else {
  43. siblings.unlock(oldSelected);
  44. siblings.lock(newSelected);
  45. }
  46. }
  47.  
  48.  
  49. $('.social-option select').each(function() {
  50. siblings.lock($('option:selected', this));
  51. siblings.unlockZero();
  52. });
  53.  
  54. $('.social-option select').on('focus', function () {
  55. var oldSelected = $('option:selected', this);
  56.  
  57. $('.social-option select').on('change', function () {
  58. var newSelected = $('option:selected', this);
  59. checkSiblings(oldSelected, newSelected);
  60. });
  61. });
  62.  
  63.  
  64. });
  65. })(jQuery);
  66.  
  67. $(function () {
  68. $(".social-option select").on("change", function(e) {
  69. $(".social-option select option:disabled").prop("disabled", false);
  70. $(".social-option select option:selected").each(function(i) {
  71. var $val = $(this).val();
  72. if ($val !== '0') {
  73. $(".social-option select option[value="+$val+"]").prop("disabled", true);
  74. };
  75. });
  76. }).change();
  77. })โ€‹;
  78.  
  79. (function($) {
  80. var checkSiblings = function(group, oldSelected, newSelected) {
  81. group.find("option[value=" + oldSelected.val() + "]").removeAttr('disabled');
  82. group.find("option[value=" + newSelected.val() + "]").not(newSelected).attr('disabled', 'disabled');
  83. };
  84. $.fn.distinctValues = function() {
  85. var group = this;
  86. this.each(function(idx, selectBox) {
  87. $(selectBox).on('change', function() {
  88. var $this = $(this);
  89. var newSelected = $('option:selected', this);
  90. checkSiblings(group, $this.data('oldSelected'), newSelected);
  91. $this.data('oldSelected', newSelected);
  92. }).data('oldSelected', $('option:selected', this));
  93. });
  94. };
  95. }(jQuery));
  96.  
  97.  
  98. jQuery('.social-option select').distinctValues();โ€‹
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement