fancy-assessment.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. $(document).ready(function() {
  2. $(".slider-bar").click(function(e) {
  3. $slider = $(this).find(".brain-slider");
  4. sliderPos = $slider.position();
  5. offset = $(this).offset();
  6. mouseOffset = e.clientX - offset.left;
  7. sliderPos.left = mouseOffset - $slider.width() / 2;
  8. barWidth = $(this).width();
  9. if (sliderPos.left < 0) {
  10. sliderPos.left = 0;
  11. }
  12. if (sliderPos.left >= barWidth - $slider.width()) {
  13. sliderPos.left = barWidth - $slider.width();
  14. }
  15. $slider.css(sliderPos);
  16. max = $(this).data("range-max");
  17. min = $(this).data("range-min");
  18. notches = max - min;
  19. notchSize = barWidth / notches;
  20. sliderValue = Math.round(sliderPos.left / notchSize) + 1;
  21. $(this).find('input[type="hidden"]').attr('value', sliderValue);
  22. });
  23. $(".brain-slider").draggable({
  24. axis : "x",
  25. containment : "parent",
  26. stop : function() {
  27. max = $(this).parent().data("range-max");
  28. min = $(this).parent().data("range-min");
  29. notches = max - min;
  30. notchSize = $(this).parent().width() / notches;
  31. sliderValue = Math.round($(".brain-slider").position().left / notchSize) + 1;
  32. $(this).parent().find('input[type="hidden"]').attr('value', sliderValue);
  33. }
  34. });
  35. $(".brain-slider").mousedown(function() {
  36. $(this).addClass("ui-clickable-clicked");
  37. });
  38. $(".brain-slider").mouseup(function() {
  39. $(this).removeClass("ui-clickable-clicked");
  40. });
  41. $(".brain-slider").mouseout(function() {
  42. $(this).removeClass("ui-clickable-clicked");
  43. });
  44. $(".checkbox-container").click(function() {
  45. $checkbox = $(this).find('input[type="checkbox"]');
  46. if ($checkbox.prop("checked")) {
  47. $(this).removeClass("active");
  48. $checkbox.prop("checked", false);
  49. } else {
  50. $(this).addClass("active");
  51. $checkbox.prop("checked", true);
  52. }
  53. });
  54. $('.checkbox-container').on('dragstart', function(event) {
  55. $(this).toggleClass("active");
  56. $(this).find('input[type="checkbox"]').attr('checked', 'checked');
  57. event.preventDefault();
  58. });
  59. $(".radio-container").click(function() {
  60. $(this).siblings().removeClass("active");
  61. var $radio = $(this).children('input[type="radio"]');
  62. $radio.prop('checked', !$radio.prop('checked'));
  63. $(this).toggleClass("active");
  64. });
  65. $('.radio-container').on('dragstart', function(event) {
  66. $(this).siblings().removeClass("active");
  67. var $radio = $(this).children('input[type="radio"]');
  68. $radio.prop('checked', !$radio.prop('checked'));
  69. $(this).toggleClass("active");
  70. event.preventDefault();
  71. });
  72. });