Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.03.2017, 12:28
Аспирант
Отправить личное сообщение для dima-kruglyak Посмотреть профиль Найти все сообщения от dima-kruglyak
 
Регистрация: 20.01.2016
Сообщений: 39

Как упростить скрипт
<script src="https://code.jquery.com/jquery-1.10.2.js"></script> 
 
<ul>
  <li class="showEdt" data-evalz="111">Milk</li>
  <li class="showEdt" data-evalz="222">Bread</li>
</ul>
 
<div class="myAnchor">333</div>
 
<script>
var myAnchorText = $('.myAnchor').text();

$("ul").on("click", ".showEdt" ,function(){
	$('.myAnchor').html($(this).attr("data-evalz"));
	
	var myAnchorText = $('.myAnchor').text();
	myAnchorText = $(this).attr("data-evalz")
	
	$( "li" ).hover(
	  function() {
			$('.myAnchor').html($(this).attr("data-evalz"));
	  }, function() {
			$('.myAnchor').html(myAnchorText);
	  }
	  
	);

	
});
	$( "li" ).hover(
	  function() {
			$('.myAnchor').html($(this).attr("data-evalz"));
	  }, function() {
			$('.myAnchor').html(myAnchorText);
	  }
	  
	);
</script>


Как упростить скрипт, он работает как надо, но можно лучше.
Ответить с цитированием
  #2 (permalink)  
Старый 07.03.2017, 12:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

dima-kruglyak,
что делает скрипт?
Ответить с цитированием
  #3 (permalink)  
Старый 07.03.2017, 13:01
Аспирант
Отправить личное сообщение для dima-kruglyak Посмотреть профиль Найти все сообщения от dima-kruglyak
 
Регистрация: 20.01.2016
Сообщений: 39

https://jsfiddle.net/dmitrypix/h4akpgsv/1/
Ответить с цитированием
  #4 (permalink)  
Старый 07.03.2017, 13:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

dima-kruglyak,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>
$(function() {
    var myAnchorText = $(".myAnchor").text();
    $("ul").on("click mouseenter mouseleave", ".showEdt", function(event) {
        var text = $(this).data("evalz");
        if (event.type == "mouseenter") $(".myAnchor").html(text);
        else if (event.type == "click") myAnchorText = text;
        else $(".myAnchor").html(myAnchorText)
    })
});
  </script>
</head>

<body>
<ul>
  <li class="showEdt" data-evalz="111">Milk</li>
  <li class="showEdt" data-evalz="222">Bread</li>
</ul>
<div class="myAnchor">333</div>
</body>
</html>

Последний раз редактировалось рони, 07.03.2017 в 13:10.
Ответить с цитированием
  #5 (permalink)  
Старый 07.03.2017, 13:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

dima-kruglyak,
[HTML run]тут ваш код[/HTML]
Ответить с цитированием
  #6 (permalink)  
Старый 07.03.2017, 22:57
Аспирант
Отправить личное сообщение для dima-kruglyak Посмотреть профиль Найти все сообщения от dima-kruglyak
 
Регистрация: 20.01.2016
Сообщений: 39

Подскажите в каком направлении искать, если скажем в одном элементе 2 атрибута data а в другом 1, и при наведение или клике myAnchor-2 становился пустой а не принимал замечание первого.

<ul>
  <li class="showEdt" data-evalz="111" data-evalz-2="1">Milk</li>
  <li class="showEdt" data-evalz="222">Bread</li>
</ul>
 
<div class="myAnchor">333</div>
<div class="myAnchor-2">222</div>
Ответить с цитированием
  #7 (permalink)  
Старый 07.03.2017, 23:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

dima-kruglyak,
не осилил, может как то иначе опишите.
Ответить с цитированием
  #8 (permalink)  
Старый 08.03.2017, 00:00
Профессор
Отправить личное сообщение для Manyasha Посмотреть профиль Найти все сообщения от Manyasha
 
Регистрация: 21.09.2015
Сообщений: 196

dima-kruglyak, может так?
Сделала на основе примера от Рони
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(function() {
	var sufs=[],
		myAnchorText=[];
	$("div[class^='myAnchor']").each(function(){
		var suf = $(this).attr("class").replace("myAnchor","");
		sufs.push(suf);
		myAnchorText.push($(".myAnchor" + suf).text())
	});
    $("ul").on("click mouseenter mouseleave", ".showEdt", function(event) {
        var text = [], el;
        el = $(this);
        $(sufs).each(function(i, s){
        	text[i] = el.data("evalz"+s) == undefined ? "" : el.data("evalz"+s);
        });
        if (event.type == "mouseenter") {
          $(sufs).each(function(i, s){
            $(".myAnchor"+ s).html(text[i]);
          });
        }else if (event.type == "click") {
          $(sufs).each(function(i, s){
              myAnchorText[i] = text[i];
          });
        }else{
          $(sufs).each(function(i, s){
              $(".myAnchor"+ s).html(myAnchorText[i]);
          });
        } 
    })
});
</script>

<ul>
  <li class="showEdt" data-evalz="111" data-evalz-2="1">Milk</li>
  <li class="showEdt" data-evalz="222">Bread</li>
</ul>
  
<div class="myAnchor">333</div>
<div class="myAnchor-2">222</div>
Ответить с цитированием
  #9 (permalink)  
Старый 08.03.2017, 00:35
Аспирант
Отправить личное сообщение для dima-kruglyak Посмотреть профиль Найти все сообщения от dima-kruglyak
 
Регистрация: 20.01.2016
Сообщений: 39

Да. Спасибо.
Ответить с цитированием
  #10 (permalink)  
Старый 08.03.2017, 01:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

dima-kruglyak,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>
$(function() {
   function rev(sel, text) {
    return $(sel).map(function(i) {
        return text ? $(this).text(text[i] || "") : $(this).text()
    }).get()
   };

    var myAnchorText = rev(".myAnchor");

    $("ul").on("click mouseenter mouseleave", ".showEdt", function(event) {
        var text = $(this).data("evalz");
        if (event.type == "mouseenter") rev(".myAnchor",text);
        else if (event.type == "click") myAnchorText = text;
        else rev(".myAnchor",myAnchorText);
    })
});
  </script>
</head>

<body>
<ul>
  <li class="showEdt" data-evalz="[111,1]">Milk</li>
  <li class="showEdt" data-evalz="[222]">Bread</li>
</ul>
<div class="myAnchor">333</div>
<div class="myAnchor">222</div>
</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На webkit скрипт срабатывает не так как надо MadChild Общие вопросы Javascript 7 06.05.2014 14:51
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Как написать автозапускающийся скрипт на странице пользователя? evgenyivanov Общие вопросы Javascript 1 04.01.2014 15:09
Как правильно поправить скрипт? Я не программист sergant Общие вопросы Javascript 0 15.11.2013 19:32
Как запустить скрипт после отработки другого скрипта? roman2 Общие вопросы Javascript 2 10.08.2009 01:23