Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не работает if (https://javascript.ru/forum/jquery/69675-ne-rabotaet-if.html)

рони 11.07.2017 22:26

cadijob,
не понимаю!!! видимо более ничем помочь не могу.

laimas 11.07.2017 22:27

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

cadijob 11.07.2017 22:49

Цитата:

Сообщение от laimas (Сообщение 458227)
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. Но код, выше, выполняется.

рони 11.07.2017 22:51

Цитата:

Сообщение от cadijob
Сделал так -

так делать вредно!!!

cadijob 11.07.2017 22:51

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

Работает. Спасибо за совет с ===.

рони 11.07.2017 22:52

cadijob,
лучше бы не колдовали, а обьяснили алгоритм, того что хотите сделать.

cadijob 11.07.2017 22:57

Цитата:

Сообщение от рони (Сообщение 458234)
cadijob,
лучше бы не колдовали, а обьяснили алгоритм, того что хотите сделать.

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

рони 11.07.2017 22:58

Цитата:

Сообщение от cadijob
Работает.

интересно чем ваш код отличается от кода в посте 27

cadijob 11.07.2017 23:03

Цитата:

Сообщение от рони (Сообщение 458236)
интересно чем ваш код отличается от кода в посте 27

Я его пробовал использовать. Не работало.

рони 11.07.2017 23:07

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>


Часовой пояс GMT +3, время: 15:37.