Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Как упростить скрипт

<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>


Как упростить скрипт, он работает как надо, но можно лучше.
Ответ: 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>
Вопрос: Помогите упростить скрипт

Добрый день. Я - начинающий программист. Не пожскажете как сократить такой код. скрипт нужен для вычисления стоимости электромонтажных работ на сайте.


function calcCost(){
//создаем массив, в котором храним данные, в которые ниже присвоим
//стоимость отдельных работ.
var arrResult = ['result1', 'result2', 'result3', 'result4', 'result5',
'result6', 'result7', 'result8', 'result9', 'result10', 'result11',
'result12', 'result13', 'result14', 'result15', 'result16', 'result17',
'result18','result19', 'result20', 'result21', 'result22', 'result23',
'result24', 'result25', 'result26', 'result27', 'result28', 'result29',
'result30']; //создаем массив, в кот. храним все пункты работ
//присваиваем каждому элементу массива элемент из html, умножаем на суму стоимости работы и преобразуем строку в число


arrResult[0] = parseInt(document.getElementById('input1').value * 16);
arrResult[1] = parseInt(document.getElementById('input2').value * 50);
arrResult[2] = parseInt(document.getElementById('input3').value * 11);
arrResult[3] = parseInt(document.getElementById('input4').value * 8);
arrResult[4] = parseInt(document.getElementById('input5').value * 12);
arrResult[5] = parseInt(document.getElementById('input6').value * 7);
arrResult[6] = parseInt(document.getElementById('input7').value * 6);
arrResult[7] = parseInt(document.getElementById('input8').value * 55);
arrResult[8] = parseInt(document.getElementById('input9').value * 38);
arrResult[9] = parseInt(document.getElementById('input10').value * 65);
arrResult[10] = parseInt(document.getElementById('input11').value * 46);
arrResult[11] = parseInt(document.getElementById('input12').value * 36);
arrResult[12] = parseInt(document.getElementById('input13').value * 40);
arrResult[13] = parseInt(document.getElementById('input14').value * 20);
arrResult[14] = parseInt(document.getElementById('input15').value * 40);
arrResult[15] = parseInt(document.getElementById('input16').value * 50);
arrResult[16] = parseInt(document.getElementById('input17').value * 20);
arrResult[17] = parseInt(document.getElementById('input18').value * 300);
arrResult[18] = parseInt(document.getElementById('input19').value * 200);
arrResult[19] = parseInt(document.getElementById('input20').value * 38);
arrResult[20] = parseInt(document.getElementById('input21').value * 48);
arrResult[21] = parseInt(document.getElementById('input22').value * 58);
arrResult[22] = parseInt(document.getElementById('input23').value * 68);
arrResult[23] = parseInt(document.getElementById('input24').value * 75);
arrResult[24] = parseInt(document.getElementById('input25').value * 115);
arrResult[25] = parseInt(document.getElementById('input26').value * 80);
arrResult[26] = parseInt(document.getElementById('input27').value * 100);
arrResult[27] = parseInt(document.getElementById('input28').value * 170);
arrResult[28] = parseInt(document.getElementById('input29').value * 75);
arrResult[29] = parseInt(document.getElementById('input30').value * 90);
arrResult[30] = parseInt(document.getElementById('input31').value * 40);

var resultCommon = arrResult[30] + arrResult[29] + arrResult[28] +
arrResult[27] + arrResult[26] + arrResult[25] + arrResult[24] + arrResult[23] +
arrResult[22] + arrResult[21] + arrResult[20] + arrResult[19] + arrResult[18] +
arrResult[17] + arrResult[16] + arrResult[15] + arrResult[14] + arrResult[13] +
arrResult[12] + arrResult[11] + arrResult[10] + arrResult[9] + arrResult[8] +
arrResult[7] + arrResult[6] + arrResult[5] + arrResult[4] + arrResult[3] +
arrResult[2] + arrResult[1] + arrResult[0];
//складываем все работы

var oi = document.getElementById('out');
oi.textContent = resultCommon + ' ГРИВЕН';
};
Ответ: Dmitriy8804, не принципиально, пустое поле считается нулём:
alert('' * 2)
Если нужна дополнительная валидация - для input type number можно задать step, min и max, не приплетая js.
Вопрос: Id элементов и скрипты

проблема заключается в том, что у меня активная часть - куда нужно кликать наверху по коду в страничке. а поля, куда должна выводится информация - ниже по коду. java скрипт любит когда нужный id - над которым этот скрипт производит какие-то манипуляции находится выше кода скрипта. типа:
Code
1
2
3
4
<div id=tut>будет заменено</div>
<script>
document.getElementById('tut').innerHTML = 'Прувееет!';
</script>
а как быть если скрипт будет выше, а айди соответственно ниже скрипта?
Ответ:
Сообщение от SeregaZ
java скрипт любит когда нужный id - над которым этот скрипт производит какие-то манипуляции находится выше кода скрипта
Просто при выполнении этого js, элементы еще не загружаются.
Сообщение от SeregaZ
а как быть если скрипт будет выше, а айди соответственно ниже скрипта?
Для этого есть windows.onload в js, и document.ready в jquery
Javascript
1
2
3
4
5
6
7
windows.onload = function() {
  //тут код
}
 
$(document).ready(function(){
  // Тут код
});
Вопрос: Упростить скрипт, помогите плз.

Есть такой скрипт для слайдера:
$(function () {
	var elWrap = $('#slider'),
		el =  elWrap.find('img'),
		indexImg = 1,
		indexMax = el.length,
		phase = 3000;
	
	function change () {
		el.fadeOut(500);
		el.filter(':nth-child('+indexImg+')').fadeIn(500);
	}	
		
	function autoCange () {	
		indexImg++;
		if(indexImg > indexMax) {
			indexImg = 1;
		}			
		change ();
	}	
	var interval = setInterval(autoCange, phase);

	elWrap.mouseover(function() {
		clearInterval(interval);
	});
	elWrap.mouseout(function() {
		interval = setInterval(autoCange, phase);
	});
	
	elWrap.append('<span class="next"></span><span class="prev"></span>');
	var	btnNext = $('span.next'),
		btnPrev = $('span.prev');
		
	btnNext.click(function() {
		indexImg++;
		if(indexImg > indexMax) {
			indexImg = 1;
		}
		change ();
	});
	btnPrev.click(function() {
		indexImg--;
		if(indexImg < 1) {
			indexImg = indexMax;
		}
		change ();
	});	
});


Хочу упростить. Нужен просто слайдер, который меняет картинки. Ничего лишнего чтоб было. Оставил вот так:
$(function () {
	var elWrap = $('#slider'),
		el =  elWrap.find('img'),
		indexImg = 1,
		indexMax = el.length,
		phase = 3000;
	
	function change () {
		el.fadeOut(500);
		el.filter(':nth-child('+indexImg+')').fadeIn(500);
	}	
		
	function autoCange () {	
		indexImg++;
		if(indexImg > indexMax) {
			indexImg = 1;
		}			
		change ();
	}	
	var interval = setInterval(autoCange, phase);

	elWrap.mouseover(function() {
		clearInterval(interval);
	});
	elWrap.mouseout(function() {
		interval = setInterval(autoCange, phase);
	});

});

В джаваскрипт полный ноль я. Просто помогите, есть тут что еще выбросить?
P.S. Подайте кто сколько может... (c)
Ответ: volodyal,

var interval;
//...
elWrap.mouseout(function() {
		interval = setInterval(autoCange, phase);
	}).mouseout();
Вопрос: Упростить скрипт на JQuery

Всем привет!
В JS совсем юн, а использовать надо. Изучаю потихоньку его, но пишу свои простые скрипты пока на JQuery. Поэтому, не судите строго студента. У меня вопрос к более опытным и знающим. Работаю над сайтом.Задача стоит чтобы при скроллинге header изменял высоту и размер логотипа. Написал код:
//    header scroll
    $(window).scroll(function() {
        if ($(this).scrollTop() > 1) { 
            $('.navigation').hide(),
            $('.header').addClass('header_sticky'),
            $('.header__logo').addClass('header__logo_sticky'),
            $('.header__switch').show('drop', { direction: 'right' });
        } else {
            $('.navigation').show(),
            $('.header').removeClass('header_sticky'),
            $('.header__logo').removeClass('header__logo_sticky'),
            $('.header__switch').hide('drop', { direction: 'right' });
        }
    }); // end header scroll


Вопрос такой,
во-первых: правильно ли (синтаксически) перечислять команды через запятую (Изначально через ";" было. Но я так сделал потому что ошибку искать начал. Ошибка:header дергался, небольшой зазор в 1px сверху начал появляться-исчезать. Начал отлаживать, мучался, дошёл до инструкции if else попробовал через запятую прописать. И вроде дергаться перестал)

и во-вторых: Как можно этот код упростить? мне кажется он слишком громоздкий и не совсем верный хоть и рабочий.

Был бы признателен за помощь)
P.s: ну и в идеале (извините за наглость, конешно) было бы интересно на ванильном JS этот код посмотреть
Ответ:
Сообщение от Dilettante_Pro
vittoS,
document.getElementsByClassName возвращает коллекцию всех элементов с указанным классом

[0] - первый элемент из найденных

Насчет плавности - например, возвращаясь к jQuery - fadeOut, fadeIn

Благодарю
Вопрос: Бот-скрипт

Здравствуйте, очень нуждаюсь в бот-скрипте. Может, некоторые знают, есть такой сайт csgodouble и множество других на его подобии. Тоесть это рулетка из 3 цветов -КЧЗ. Есть скрипт, который удваивает ставку при проигрыше, тоесть это принцип мартингейла. Вот:

// CONFIG ////////////////
var initialBetAmount = 2;
var mode = 'martingale'; // can be 'martingale' or 'anti-martingale' (WAT? .. )
var betColor = 'black'; // can be 'red' or 'black'
//////////////////////////

function tick(){var a=getStatus();if(a!==lastStatus&&"unknown"!==a){switch(a){case"waiting":bet();break;case"rolled":rolled()}lastStatus=a,printInfo()}}function checkBalance(){return getBalance()<currentBetAmount?(console.warn("BANKRUPT! Not enough balance for next bet, aborting."),clearInterval(refreshIntervalId),!1):!0}function printInfo(){var a=" \nStatus: "+lastStatus+"\nRolls played: "+currentRollNumber+"\nInitial bet amount: "+initialBetAmount+"\nCurrent bet amount: "+currentBetAmount+"\nLast roll result: "+(null===wonLastRoll()?"-":wonLastRoll()?"won":"lost");console.log(a)}function rolled(){return"anti-martingale"===mode?void antiMartingale()martingale(),void currentRollNumber++)}function antiMartingale(){currentBetAmount=wonLastRoll()?2*currentBetAmount:initialBetAmount}function martingale(){currentBetAmount=wonLastRoll()?initialBetAmount:2*currentBetAmount}function bet(){checkBalance()&&(setBetAmount(currentBetAmount),setTimeout(placeBet,50))}function setBetAmount(a){$betAmountInput.val(a)}function placeBet(){return"red"===betColor?($redButton.click(),void(lastBetColor="red"))$blackButton.click(),void(lastBetColor="black"))}function getStatus(){var a=$statusBar.text();if(hasSubString(a,"Rolling in"))return"waiting";if(hasSubString(a,"***ROLLING***"))return"rolling";if(hasSubString(a,"rolled")){var b=parseInt(a.split("rolled")[1]);return lastRollColor=getColor(b),"rolled"}return"unknown"}function getBalance(){return parseInt($balance.text())}function hasSubString(a,b){return a.indexOf(b)>-1}function getColor(a){return 0==a?"green":a>=1&&7>=a?"red":"black"}function wonLastRoll(){return lastBetColor?lastRollColor===lastBetColor:null}var currentBetAmount=initialBetAmount,currentRollNumber=1,lastStatus,lastBetColor,lastRollColor,$balance=$("#balance"),$betAmountInput=$("#betAmount"),$statusBar=$(".progress #banner"),$redButton=$("#panel1-7 .betButton"),$blackButton=$("#panel8-14 .betButton"),refreshIntervalId=setInterval(tick,500);
На второй строчке вводим кол-во очков, которые хотим поставить, а на пятой - цвет.(Зеленый не ставить!)

Мне нужен скрипт, который при проигрыше удваивает ставку и при этом меняет цвет на противоположный.
Например - ставлю 10 очк на красн, но выпадает черное. Далее скрипт делает ставку 20 на черный. И если черный выигрывает, снова ставит по 10 и при этом на выигрышный цвет.

Дал пример, здесь не хватает только смены цвета... Может кто-нибудь замутить? Если повезет, в долгу не останусь)

Добавлено через 7 минут
Именно для сайта csgodouble.

Добавлено через 43 минуты
Вместо 1 смайлика : и (
И вместо второго то же самое
Ответ: Padimanskas, ну давай будем ещё к правилам придираться, что кстати правилами запрещено).

а вообще, я просто напомнил. я же не жалуюсь администрации, не шлю им отрицательные отзывы, просто напоминаю
надо знать правила
Вопрос: Как упростить скрипт движения картинки

Здравствуйте.

На сайте надо сделать картинку движущуюся от левого края до правого и обратно в цикле. При этом картинка меняется. Реализовал так:

<script>
var leftpos = 1;
setTimeout("left()",100);
function left(){
leftpos=leftpos+1;
if(leftpos > 80){setTimeout("right()",100);}else{
document.getElementById('right').style.display = 'none';
document.getElementById('left').style.display = 'block';
document.getElementById('left').style.left = leftpos + '%';
setTimeout("left()",100)
}
}

function right(){
leftpos=leftpos-1;
if(leftpos <1){setTimeout("left()",100)}else{
document.getElementById('left').style.display = 'none';
document.getElementById('right').style.display = 'block';
document.getElementById('right').style.left = leftpos + '%';
setTimeout("right()",100)
}
}
</script>


<div id="left" style="position:absolute;">Левая картинка</div>
<div id="right" style="position:absolute;">Правая картинка</div>

Мне кажется громоздко. Может подскажете, как проще реализовать? Подозреваю, на jquery это можно сделать проще.
Ответ:
Сообщение от zawm
Подозреваю, на jquery это можно сделать проще.
Ну так вместо подозрений, нужно . Хотя если оформить нормальной функцией, то и без JQ не громоздко, собственно JS, это и есть библиотека готовых JS функций, а не нечто волшебное.
Вопрос: Скрипт редеректа но со своеобразной логикой

Привет!
Помогите написать скрипт редиректа
<script language="JavaScript"> 
window.location.href = "http://moisait.ru"
</script>



принцип работы редиректа такой, если этот скрипт будет открыт на моем домене
moisait.ru то скрипт не срабатывает и редирект на меня-же самого не происходит, а вот
если этот скрипт открыть на любом другом сайте (домене) должен сработать редирект на moisait.ru


Помогите пожалуйста написать такой скрипт, и возможно ли это сделать технически?
скрипт нужен для защиты своего сайта от его отображения (копирования) на других доменах
методом ифрейма, wget, и любыми другими способами.
У меня проблема, у моего сайта появился клон все точь в точь, если я меняю информацию то на его клоне она меняется сразу!
всякие правила .htaccess перепробовал блокировка по ип, запрет перехода с его домена на мой - ничего не помогло
вся надежда на скрипт, может тогда этот упыряка отстанет, заранее спасибо!
Ответ: да уверен! сейчас на домене вора уже другой сайт отображается, я просто писал абузы хостеру, это чмо-воровковитое принялось обрабатывать другого...
жаль что хостер не удаляет и скрипты таких уродов! которые таким образом уничтожают нормальные-сайты людей


так все-же можно на ява такой скрипт написать?
Вопрос: Почему может не работать скрипт?

Всем привет, сайт на ВП.
Как убрать по-умолчанию не знаю, поэтому хочу удалить атрибуты type='text/css' media='all' и type='text/javascript' из всех ссылок через js.
Они в принципе не мешают, но и разницы в их наличии/отсутствии нет. Хотя валидатор ругается

Подскажите, почему скрипт может не работать? В песочнице все работает.

<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Comfortaa' type='text/css' media='all' />
    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Chakra+Petch" type='text/css' />
  </head>

  <body>

    <script>
      const linkRel = document.querySelectorAll("[rel='stylesheet']");
      linkRel.forEach(function(linkRel) {
        linkRel.removeAttribute('type');
        linkRel.removeAttribute('media');
      });

    </script>
    <style>
      .container {
        width: 100vw;
        height: 100vh;
        background-color: #333;
      }

    </style>
    <div class="container"></div>
  </body>

</html>
Ответ: madeas, я бы на вашем месте не response обрабатывал, а посмотрел на функцию, которая скрипты регистрирует.
Вопрос: [Продажа] скрипт CPA/CPS-партнерской программы

Хотите сделать выгодное вложение средств? Купите скрипт CPA-сети и зарабатывайте как сами, так и на комиссии с других рекламодателей.

Скрипт CPA-сети

Писал для себя и уже использую по прямому назначению. Причина продажи копии - привлечение дополнительных оборотных средств.

Рабочая версия:
Посмотреть внутренности можно после в ней.

ВИДЕО



(если считаете что нужно добавить какое-либо обзорное видео - сообщите пожалуйста мне об этом)

Что Вы получаете в результате:

- вебмастера сами продают Ваш товар, Вы не паритесь по поводу рекламы товара не вкладываете в рекламу свои деньги.
- имеем комиссию с продаж чужих товаров через свою партнерку.

Цена вопроса: 70000 рублей.
Бонус: БЕСПЛАТНО, два подключенных оффера с лендингами в комплекте.

В комплект входит:

- скрипт CPA-партнерской программы
- Аренда отдельного VPS под партнерку (будет оплачен на 1 месяц).
- полная установка скрипта на Ваш домен, привязанный к VPS.
- Консультации и техподдержка в течение месяца.
- Бонус: БЕСПЛАТНО, два подключенных оффера с лендингами в комплекте.

Цена будет только расти с каждым следующим обновлением.
После приобретения, бесплатная техподдержка в течение месяца.

Дополнительно:

- Если Вы считаете что это дорого (или дешево), это лично Ваше мнение, не стоит меня посвящать в эти подробности. Вас либо устраивает цена либо нет, и не стоит тратить время на обсуждение.
Подумайте какие доходы Вы хотите с этого иметь, на какие суммы ориентируетесь. Если это меньше чем сумма которую я озвучил - Вам скрипт точно не нужен.

- По поводу поддержки. Если находится баг или другой программный косяк, то он устраняется бесплатно. По поводу желаемых Вами доработок. Если это действительно необходимая в партнерке вещь и я увижу что в моей копии партнерки это пригодится, то она (доработка) будет дописана бесплатно. Если это Ваш каприз - то за отдельные, вполне разумные финансы.

Если у Вас есть вопросы или уточнения, прошу беспокоить техподдержку по указанному ниже Скайпу и ICQ. При необходимости, можно созвониться по телефону.


ICQ: 619084037
Skype: live:info_267496
(Я не анонимен. Если у Вас серьезные намерения, то буду рад созвониться и пообщаться.)

-------------------------
- на текущий момент полностью реализована возможность работы офферов с набором лендингов.
- работа с сабаккаунтами. Теперь арбитражники при работе могут отслеживать конверсии по тизерам/площадкам/кампаниям.
- подходит как для CPA так и для CPS.
- планируется в будущем реализация API для подключения интернет-магазинов.

Рабочая версия:
Посмотреть внутренности можно после в ней.



--
Ответ:
Скрипт CPA-сети (CPA-партнерской программы). Вкладывайте деньги в развитие своего бизнеса.

- гибкие тарифные планы.
- возможность приобрести скрипт + оффер с товаром и лендингом, все под ключ.

Узнайте больше!


ICQ: 667413234
Skype: live:info_267496