Показать сообщение отдельно
  #1 (permalink)  
Старый 23.07.2017, 13:19
Новичок на форуме
Отправить личное сообщение для artsem Посмотреть профиль Найти все сообщения от artsem
 
Регистрация: 31.01.2017
Сообщений: 6

Как сократить javascript?
Здравствуйте, есть голосовалка по 4 параметрам, подскажите как можно сократить её js. Сам понимаю что занимаюсь копипастом, вот пример для двух параметров.
HTML:
<div id="stats">
    <div id="ratingBar0">
	<div id="rat-ic0" title=""></div>
	<div id="rat-st0">86%</div>
	<div id="rating0">
		<div id="ratZero0"></div>
		<div id="ratDone0"></div>
		<div id="ratHover0"></div>
	</div>
	<div id="ratBlocks0"></div>
	<div id="ratStat0"></div>
    </div>
    <div id="ratingBar1">
	<div id="rat-ic1" title=""></div>
	<div id="rat-st1">86%</div>
	<div id="rating1">
		<div id="ratZero1"></div>
		<div id="ratDone1"></div>
		<div id="ratHover1"></div>
	</div>
	<div id="ratBlocks1"></div>
	<div id="ratStat1"></div>
    </div>
</div>
</div>


Сам JS:

<script type="text/javascript">
var idUser = "18678";
var starWidth = 20;
var coords;
var stars;
var razn = 500;
var put = ["vote_kult", "vote_humor"];
var voteAll = ["5", "5"];
var ratingS = ["74%","84%"];
var i = 0;
  for (var a = 0; a <= 1;a++) {
  	$("#ratStat"+a).html("Оценили: <strong>"+voteAll[a]+"</strong><span class='st-people'></span>");
  	$("#ratDone"+a).css("width", ratingS[a]);
    }

$(document).ready(function(){
$("#rating0").mousemove(function(e){
 var offset = $("#rating0").offset();
 coords = e.clientX - offset.left;
 stars = Math.ceil(coords/starWidth); 
 starsCss = stars*starWidth;
 $("#ratHover0").css("width", starsCss).attr("title", stars+" из 10");
});
$("#rating0").mouseout(function(){$("#ratHover0").css("width", 0);});
$("#rating0").click(function(){
 $.ajax({
  type: "GET",
  url: "php/vote/action.php",
  data: {"id": idUser, "rating": stars},
  cache: false,
  success: function(response){
  if(response == 1){
   var st = stars*starWidth;
   $("#ratHover0").css("display", "none");
   $("#ratDone0").animate({width: st},razn);
   $("#ratBlocks0").show();
   $("#ratStat0").html("Вы поставили: <strong>"+stars+"</strong>");
   }else{
   $("#ratStat0").text(response);
   }							
  }
 });
  return false;
});

$("#rating1").mousemove(function(e){
 var offset = $("#rating1").offset();
 coords = e.clientX - offset.left;
 stars = Math.ceil(coords/starWidth); 
 starsCss = stars*starWidth;
 $("#ratHover1").css("width", starsCss).attr("title", stars+" из 10");
});
$("#rating1").mouseout(function(){$("#ratHover1").css("width", 0);});
$("#rating1").click(function(){
 $.ajax({
  type: "GET",
  url: "php/vote/action.php",
  data: {"id": idUser, "rating": stars},
  cache: false,
  success: function(response){
  if(response == 1){
   var st = stars*starWidth;
   $("#ratHover1").css("display", "none");
   $("#ratDone1").animate({width: st},razn);
   $("#ratBlocks1").show();
   $("#ratStat1").html("Вы поставили: <strong>"+stars+"</strong>");
   }else{
   $("#ratStat1").text(response);
   }							
  }
 });
  return false;
});
</script>

Последний раз редактировалось artsem, 23.07.2017 в 15:09.
Ответить с цитированием