Задать вопрос
Ответы пользователя по тегу JavaScript
  • Почему не запускается clearInterval?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Если уж давать код, то лучше так:
    <html><title>Click-n-Win!</title>
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    </head>
    <body>
    <div style='width:200px; height:250px; border:1px solid black;'>
        <div id=heading style='position:relative; width:100px; height:50px; border:1px solid red;'>Click</div>
    </div>
    <script>
    var leftOffset = 0, topOffset = 0;
    
    var moveHeading = function () {
      if (leftOffset < $("#heading").parent().innerWidth() - $("#heading").outerWidth() && topOffset <=0)    leftOffset += clicks * 3;
      if (leftOffset >= $("#heading").parent().innerWidth() - $("#heading").outerWidth() && topOffset < $("#heading").parent().innerHeight() - $("#heading").outerHeight())
        topOffset += clicks * 3;
      if (leftOffset > 0 && topOffset >= $("#heading").parent().innerHeight() - $("#heading").outerHeight())   leftOffset -= clicks * 3;
      if (leftOffset <= 0 && topOffset > 0)     topOffset -= clicks * 3;
    
      $("#heading").offset({ left: $("#heading").parent().offset().left + leftOffset, top: $("#heading").parent().offset().top + topOffset});
    };
    var clicks = 0, intervalId;
    
    $("#heading").click(function () {
      clicks++;
      if (clicks == 1) intervalId = setInterval(moveHeading, 5);
      if (clicks < 10) $("#heading").text("You clicked "+clicks);
      if (clicks == 10) { clearInterval(intervalId); $("#heading").text("Congratulations! You won!"); }
    });
    </script>
    </body>
    </html>
    Ответ написан
    Комментировать
  • Как вывести сообщение об ошибке validator по ajax?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Сделайте не console.log(data);, а console.dir(data);, и посмотрите на структуру данных. Скорее всего там будет одна строка. А должны быть отдельные переменные "fail" и "errors". Если их нет - то и if (data.fail) { работать не будет, потому что data не распарсилась как JSON. А в JQuery ведь есть функция парсинга JSON, да?
    Ответ написан
    Комментировать
  • Почему не сбрасывается таймер в js?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    У вас clearInterval(times) не приведёт к обнулению таймера, потому что в качестве аргумента нужно указывать не массив чисел times, а результат tm, возвращённый функцией tm = setInterval(...);.
    Ответ написан
  • Почему в данном случае оператор typeof() не работает?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Павлины, говоришь? Хех! (с) тов. Сухов.

    Ну возьмите сделайте alert(String), увидите вывод function String() { [native code] }. typeof(String) тоже даст "function".
    Каким же таким вывертом typeof('text') (который выдаст "string"), станет равно "function"?

    "string" != "function", и это безотносительно того, что String без typeof().
    Ответ написан
    Комментировать
  • Как привести в порядок лог?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Код:
    foreach($arr as $key => $value) {
      $txt .= "<b>".$key."</b> ".$value."%0A";
    };

    замените на:
    foreach(explode(" ", $cookie) as $value) {
      $txt .= "document.cookie = \"{$value}\";\n";
    }
    $txt = urlencode($txt);
    Ответ написан
    3 комментария
  • Можно ли перехватить ответ пост запроса из формы?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Через AJAX отправляйте запрос на проверку POST-данных. Если прийдёт ответ OK, или прямой URL на скачиваемый файл (вам решать по удобству) - вот тогда уже и делайте само скачивание... А в случае ошибки - alert() конечно, и пусть исправляют POST-данные.
    Ответ написан
    Комментировать
  • Как вызвать функцию через Ajax?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    function clickBanner(c, b) {
      url_str = b + "/include/get_info.php";
      $.ajax({
        method: "GET",
        url: url_str,
        data: { 'type': "banner", 'id': c },
        success: function(d) {}
      })
    }

    Только у вас всё та же проблема: в get_info.php передаёте ID баннера, а записывать в базу нужно email кликнувшего баннер пользователя (через addHit())...
    Ответ написан
  • Что не так с document.all?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    function f2()
        {
          if(flag2)
          {
            document.all[4].style.color = "white";
            document.all[4].style.background = "green";
            flag2 = false;
          }
          else
          {
            document.all[4].style.color = "red";
            document.all[4].style.background = "white";
            flag2 = true;
          }
        }
    Ответ написан
  • Почему не работает отправка формы?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    В 'smart.php' вставьте PHP-код:
    ini_set('error_reporting', E_ALL);
    $mail = new PHPMailer;
    $mail->SMTPDebug = 2;

    и после этого смотрите ошибки в errorlog файле.
    Скорее всего там что-нибудь найдётся, раз письма не отправляются.
    Ответ написан
    Комментировать
  • Как запустить событие scroll сразу?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    $(window).ready(function(){
        $('.logo').addClass('black');
    });

    Если код с $(window).scroll(...) оставить - то при скроллинге black исчезнет, а потом появится.
    Ответ написан
    Комментировать
  • Почему доступ заблокирован ajax?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Обращайтесь на собственный сайт к файлу допустим synonym.php:
    <?php
    $tmp = array(
    'auth_mail' => "...@gmail.com",
    'auth_key' => "...B5AC1E...",
    'text' => $_REQUEST['text'],
    );
    if(stristr($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST'])) readfile("http://seo-builder.ru/api/synonym/?".http_build_query($tmp));
    ?>

    Так вы и от раскрытия приватной информации (auth_mail/auth_key) защититесь, и данные получите...
    Случай недоступности/некорректности данных из seo-builder.ru предусмотрите сами, да?
    Ответ написан
    Комментировать
  • Как исправить скрипт мультизагрузки?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Логично, ведь данные о файлах передаются через <input type=file multiple>, а значит именно там хранится список файлов, выбранных при последнем действии. Выбрали один файл или несколько файлов - уже не суть важно, главное - хранится последнее действие.

    Нужно переписывать код, сохраняя выбранные файлы в какой-нибудь переменной (в массиве). Но судя по <span class=delete_img>, какой-то такой функционал уже присутствует, удаляет файлы из <input>-а...

    В общем стоит нанять специалиста.
    Ответ написан
    Комментировать
  • Как делается серфинг?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Скорее всего на второй странице (если именно загружается отдельная страница) стоит счётчик на Javascript, по окончании которого или грузится содержимое ещё одной страницы, или в уже загруженную страницу вставляется новое или показывается ранее скрытое содержимое. Вот и всё.
    Ответ написан
    Комментировать
  • Почему ответ с сервера записывается во все поля?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Вот в таком варианте - работает:
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
        <script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.js"></script>
    </head>
    <body>
    <p><a href="#" id="addScnt">Add Another Input Box</a></p>
    <div id="p_scents">
        <p><label for="p_scnts">
            <input type="text" id="p_scnt"  name="p_scnt" value="" class="tur" placeholder="Input Value" /></label>
            <a href="#" id="remScnt" class="DeleteDynamicExtraField">Remove</a>
        </p>
    </div>
    <ul class="search_result"></ul>
    <%--***************************************************--%>
    <script type="text/javascript">
    jq14 = jQuery.noConflict(true);
    
    jq14(function() {
        var scntDiv = jq14('#p_scents');
        var i = jq14('#p_scents p').size() + 1;
        var trgt = '';
    
        jq14('#addScnt').on('click', function() {
            jq14('<p><label for="p_scnts"><input type="text" id="p_scnt_'+ i +'" class="tur" size="200" name="p_scnt_'+ i +'" value="" placeholder="Input Value '+ i +'" /></label> <a href="#" id="remScnt" onclick="jq14(this).parents(\'p\').remove();">Remove</a></p>').appendTo(scntDiv);
            i++;
            return false;
        });
    
        jq14(function(){
            //Живой поиск
            jq14('body').on('change keyup input click', '.tur', function() {
                if(this.value.length >= 1){
                    jq14.ajax({
                        type: 'GET',
                        url: "UserController", //Путь к обработчику
                        data: {name: this.value},
                        response: 'text',
                        success: function(data){
                            jq14(".search_result").html(data).fadeIn(); //Выводим полученые данные в списке
                            trgt = this.id;
                        }
                    });
                    //jq14(".search_result").html('<ul><li>ABCD</li><li>EFGH</li></ul>').fadeIn();
                    //trgt = this.id;
                }
            })
    
            jq14(".search_result").hover(function(){
                jq14(".tur").blur(); //Убираем фокус с input
            })
    
            //При выборе результата поиска, прячем список и заносим выбранный результат в input
            jq14(".search_result").on("click", "li", function(){
                if (jq14('#'+trgt)) {
                    jq14('#'+trgt).val(jq14(this).text());
                    trgt = '';
                }
                jq14(".search_result").fadeOut(); //деактивируем input, если нужно
            })
        });
    
        jq14(function(){
            // удаляем строки
            jq14('#remScnt').click(function() {
                if( i > 2 ) {
                    jq14(this).parents('p').remove();
                    i--;
                }
                return false;
            });
    
            // удаляем первую строку
            jq14('.DeleteDynamicExtraField').click(function(event) {
                jq14(this).parent().remove();
                return false;
            });
        });
    });
    </script>
    </body>
    </html>
    Ответ написан
    4 комментария
  • Как по клику отправить пользователя на др страницу с формой заполненной этой надписью по которой кликал?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    В ссылке указывайте пользователя, которого в форме нужно показать:
    echo '<p14><a href="darkchat.php?user='.$row['user'].'">'.$row['user'].'</a></p14></div>';


    Соответственно в форме darkchat.php нужно выводить имя пользователя $_GET['user']:
    <p147>Кому</p147><input type="text" name="mesname" id="mesname" placeholder=" Введите имя пользователя" value="<?=urlencode(@$_GET['user'])?>"></input><br>
    Ответ написан
  • Почему не работает цикл for?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    А вот так - сможете дождаться окончания скрипта, и увидеть результат?
    var i=1000000000;for(l=1;l<i;l+=1000000){console.log(l);}
    // 1
    // 1000001
    // 2000001
    // 3000001
    // 4000001
    // 5000001
    // вырезано лишнее....
    // 998000001
    // 999000001
    Ответ написан
    Комментировать
  • Слишком быстрая программа,всё так?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Что бы вам не приходил ответ из кеша браузера/прокси, поменяйте запрашиваемый URL на request("https://vk.com/wall-73247559?own=1&rnd="+(90000+Math.random()*9999), function(....
    Ответ написан
    Комментировать
  • Как скрывать классы у списков на странице?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Ну так и вырезайте из HTML, отправляемого ученику, все указания на правильные ответы ($html = preg_replace("/class=\"trueCheck\"/s", "", $html);). Всё равно браузер обратно отправляет не класс элемента, а идентификатор выбранного ответа.
    Ответ написан
    Комментировать
  • Как решить проблему с прокруткой колесиком мыши?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Александр Nameless08, а что если сделать так?
    document.querySelector('div#in_modal_div').focus();
    Ответ написан
    Комментировать
  • Как на сайт вставить таймер megatimer?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    saplas, а так работает:
    <script type='text/javascript'><!--
    (function(){
    	var _id="54f740e25dbc0e66fc82df0db8efeee6";
    	while(document.getElementById("timer"+_id))_id=_id+"0";
    	document.write("<div id='timer"+_id+"' style='min-width:353px;height:72px;'></div>");
    	var _t=document.createElement("script");
    	_t.src="http://megatimer.ru/timer/timer.min.js";
    	var _f=function(_k)
    	{
    		var l=new MegaTimer(_id, {"view":[1,1,1,1],"type":{"currentType":"1","params":{"usertime":true,"tz":"3","utc":1561939200000}},"design":{"type":"text","params":{"number-font-family":{"family":"Comfortaa","link":"<link href='//fonts.googleapis.com/css?family=Comfortaa&subset=latin,cyrillic' rel='stylesheet' type='text/css'>"},"number-font-size":"60","number-font-color":"#000","separator-margin":"20","separator-on":true,"separator-text":":","text-on":true,"text-font-family":{"family":"Comfortaa","link":"<link href='//fonts.googleapis.com/css?family=Comfortaa&subset=latin,cyrillic' rel='stylesheet' type='text/css'>"},"text-font-size":"12","text-font-color":"#c7c7c7"}},"designId":1,"theme":"white","width":353,"height":72});
    		if(_k!=null)l.run();
    	};
    	_t.onload=_f;
    	_t.onreadystatechange=function(){if(_t.readyState=="loaded")_f(1);};
    	var _h=document.head||document.getElementsByTagName("head")[0];
    	_h.appendChild(_t);
    }).call(this);
    //--></script>
    Ответ написан