Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 11.07.2017, 22:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

cadijob,
не понимаю!!! видимо более ничем помочь не могу.
Ответить с цитированием
  #32 (permalink)  
Старый 11.07.2017, 22:27
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

cadijob,
if(OpenArea == false), это для упертых. )

0 - это тоже false, а 1 - это тоже true, если проверяется истина/ложь (булево значение), то есть писать if(OpenArea == false), это мягко говоря лишние хлопоты, так как если OpenArea равна или 0 или false, то if(!OpenArea) в обоих случаях вернет true.

Бывает, что например функция может возвращать как 0 так и false, в этом случае проверка if(!name(props)) не годится, вот тогда проверять нужно не только значение, но и тип:

if(OpenArea === false)

и это называется строгим сравнением. У вас же проблемы не потому что вместо true ноль или наоборот, а в том, что где-то логика кода вашего не соответствует ожиданиям.
Ответить с цитированием
  #33 (permalink)  
Старый 11.07.2017, 22:49
Аспирант
Отправить личное сообщение для cadijob Посмотреть профиль Найти все сообщения от cadijob
 
Регистрация: 11.07.2017
Сообщений: 38

Сообщение от laimas Посмотреть сообщение
cadijob,
У вас же проблемы не потому что вместо true ноль или наоборот, а в том, что где-то логика кода вашего не соответствует ожиданиям.
Почему?
Сделал так -
if (OpenArea === false) {
        $(".tags li").on("click", function(){
            alert($("a", this).text());
            // if (OpenArea == false) {
            //     console.log(OpenArea);
            //     $(this).css( "transform", "scale(0.85)" );
            // }
        });
    }

В консоли OpenArea - true. Но код, выше, выполняется.
Ответить с цитированием
  #34 (permalink)  
Старый 11.07.2017, 22:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Сообщение от cadijob
Сделал так -
так делать вредно!!!
Ответить с цитированием
  #35 (permalink)  
Старый 11.07.2017, 22:51
Аспирант
Отправить личное сообщение для cadijob Посмотреть профиль Найти все сообщения от cadijob
 
Регистрация: 11.07.2017
Сообщений: 38

Всё.
$(".tags li").on("click", function(){
        if (OpenArea === false) {
            alert($("a", this).text());
            // if (OpenArea == false) {
            //     console.log(OpenArea);
            //     $(this).css( "transform", "scale(0.85)" );
            // }
        }
    });

Работает. Спасибо за совет с ===.
Ответить с цитированием
  #36 (permalink)  
Старый 11.07.2017, 22:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

cadijob,
лучше бы не колдовали, а обьяснили алгоритм, того что хотите сделать.
Ответить с цитированием
  #37 (permalink)  
Старый 11.07.2017, 22:57
Аспирант
Отправить личное сообщение для cadijob Посмотреть профиль Найти все сообщения от cadijob
 
Регистрация: 11.07.2017
Сообщений: 38

Сообщение от рони Посмотреть сообщение
cadijob,
лучше бы не колдовали, а обьяснили алгоритм, того что хотите сделать.
Вам тоже кажется, что "говнокод"?)
Сейчас постараюсь объяснить.
Вы же макет видели? Так вот, когда форма открывается то по тегам нельзя перейти(то есть не редеректит на другую страницу во время клика) и в дальнейшем ajax будет эти теги в массив собирать по кликам(когда форма открыта, опять же). А вот когда форма закрыта то можно и перейти по ссылке в теге, и "в дальнейшем ajax будет эти теги в массив собирать по кликам" не будет работать.
P.S. Заноситься в массив будет id тега, который в свою очередь берётся из БД.

Последний раз редактировалось cadijob, 11.07.2017 в 23:00.
Ответить с цитированием
  #38 (permalink)  
Старый 11.07.2017, 22:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Сообщение от cadijob
Работает.
интересно чем ваш код отличается от кода в посте 27
Ответить с цитированием
  #39 (permalink)  
Старый 11.07.2017, 23:03
Аспирант
Отправить личное сообщение для cadijob Посмотреть профиль Найти все сообщения от cadijob
 
Регистрация: 11.07.2017
Сообщений: 38

Сообщение от рони Посмотреть сообщение
интересно чем ваш код отличается от кода в посте 27
Я его пробовал использовать. Не работало.
Ответить с цитированием
  #40 (permalink)  
Старый 11.07.2017, 23:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

cadijob,
что не так?
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>title</title>

    <link href="https://fonts.googleapis.com/css?family=Roboto&amp;subset=cyrillic" rel="stylesheet">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script>
$(function() {
    $("#open-close").show();
    $("#block-links").hide();
    $("#open-close").click(function(a) {
        a.preventDefault();
        $("#block-links").slideToggle(400)
    });
    $(".canDisable").on("click", function(a) {
 if ($("#block-links").is(":visible"))  a.preventDefault();
})
});
    </script>
</head>
<body>
    <div class="wrapper" id="scroll">

        <div class="container">
            <div class="botHeader">
                <a href="#" id="open-close">
                    <div class="talkBtn">
                        <p>Кнопка которая октрывает форму</p>
                    </div>
                </a>
            </div>
            <div class="borderShadow"></div>
            <div class="talk" id="block-links">
                <form action="">
                    <input type="text" name="textTitle" placeholder="Тема сообщения">
                    <textarea name="textarea" rows="8" cols="80" placeholder="Текст"></textarea>
                </form>
            </div>
            <div class="tags">
                <ul>
                    <li><a href=""  class="canDisable">Тег 1</a></li>
                    <li><a href=""  class="canDisable">Тег 2</a></li>
                    <li><a href=""  class="canDisable">Тег 3</a></li>
                    <li><a href=""  class="canDisable">Тег 4</a></li>
                    <li><a href=""  class="canDisable">Тег 4</a></li>
                    <li><a href=""  class="canDisable">Тег 5</a></li>
                    <li><a href=""  class="canDisable">Тег 6</a></li>
                    <li><a href=""  class="canDisable">Тег 7</a></li>
                    <li><a href=""  class="canDisable">Тег 8</a></li>
                    <li><a href=""  class="canDisable">Тег 9</a></li>
                    <li><a href=""  class="canDisable">Тег 10</a></li>
                    <li><a href=""  class="canDisable">Тег 11</a></li>
                    <li><a href=""  class="canDisable">Тег 12</a></li>
                </ul>
            </div>
            <div class="borderShadow"></div>
            <div class="posts">

                </div>
            </div>
        </div>
        <div class="footer">

        </div>

</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS: работает на сервере, не работает из папки -majestic- Общие вопросы Javascript 2 02.08.2012 14:41
Не работает push! Динамическая вставка TSEH25 ExtJS 5 03.07.2012 13:00
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40
помогите найти ошибку (работает в IE но не работает в Firefox) Len4ik Javascript под браузер 2 11.05.2010 15:41
Safari + ajax некорректно работает, а в других работает demi AJAX и COMET 35 15.07.2009 14:11