1jQuery(function() { 2 3 jQuery('.review-stars-header').after("<div class='rating-stars'><ul class='mb-0' id='stars'><li class='star' title='Poor' data-value='1' data-desc='\"Really Needs Improvement!\"'> <i class='fa fa-star fa-fw'></i></li><li class='star' title='Fair' data-value='2' data-desc='\"Not Satisfied.\"'> <i class='fa fa-star fa-fw'></i></li><li class='star' title='Good' data-value='3' data-desc='\"OK experience, but...\"'> <i class='fa fa-star fa-fw'></i></li><li class='star' title='Excellent' data-value='4' data-desc='\"Very satisfied.\"'> <i class='fa fa-star fa-fw'></i></li><li class='star' title='WOW!!!' data-value='5' data-desc='\"Excellent! Very Satisfied.\"'> <i class='fa fa-star fa-fw'></i></li></ul><p class='text-center mb-0'><em class='rating-desc'> </em></p><div class='boldBtn btnAccent btnSmall'><button id='next-step-btn'>NEXT STEP</button></div></div>"); 4 5 6 jQuery('#next-step-btn').hide(); 7 jQuery('#low-score-segment').hide(); 8 jQuery('#high-score-segment').hide(); 9 10 11 var lastClickedStar = 0; 12 var lastClickedDesc = ' '; 13 14 /* 1. Visualizing things on Hover - See next part for action on click */ 15 jQuery('#stars li').on('mouseover', function() { 16 var onStar = parseInt(jQuery(this).data('value'), 10); // The star currently mouse on 17 var onDescription = jQuery(this).data('desc'); 18 19 20 jQuery('.rating-desc').html('<span>' + onDescription + '</span>'); 21 22 // Now highlight all the stars that's not after the current hovered star 23 jQuery(this).parent().children('li.star').each(function(e) { 24 if (e < onStar) { 25 jQuery(this).addClass('hover'); 26 } else { 27 jQuery(this).removeClass('hover'); 28 } 29 }); 30 31 }).on('mouseout', function() { 32 33 jQuery('.rating-desc').html('<span>' + lastClickedDesc + '</span>'); 34 35 jQuery(this).parent().children('li.star').each(function(e) { 36 jQuery(this).removeClass('hover'); 37 }); 38 }); 39 40 41 /* 2. Action to perform on click */ 42 jQuery('#stars li').on('click', function() { 43 jQuery('#next-step-btn').show(); 44 45 var onStar = parseInt(jQuery(this).data('value'), 10); // The star currently selected 46 var stars = jQuery(this).parent().children('li.star'); 47 var onDescription = jQuery(this).data('desc'); 48 49 lastClickedDesc = onDescription; 50 lastClickedStar = onStar; 51 52 for (i = 0; i < stars.length; i++) { 53 jQuery(stars[i]).removeClass('selected'); 54 } 55 56 for (i = 0; i < onStar; i++) { 57 jQuery(stars[i]).addClass('selected'); 58 } 59 60 }); 61 62 63 /* NEXT BUTTON */ 64 65 jQuery('#next-step-btn').on('click', function() { 66 jQuery('#stars li').css('pointer-events', 'none'); 67 68 if(lastClickedStar <= 3) { 69 jQuery('#low-score-segment').show(); 70 71 } else { 72 jQuery('#high-score-segment').show(); 73 } 74 75 jQuery('#next-step-btn').css('display', 'none'); 76 }); 77 78 79});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.