Не верно работает JS

247
22 февраля 2017, 23:23

Здравствуйте! Я в JS ничего не понимаю, но жизнь требует. Делаю интуитивно и с помощью гугла. И уже запуталась. В карточке сайта (сайт на битриксе) есть два пользовательских условия, которые не могут выполняться одновременно : администратор либо задает видимую зону текста, после которой текст сворачивается (в нижеприведенном скрипте это первое условие), а второе поле задает запрет на сворачивание текста (это второе условие). Но эта вся "красота" не работает как надо. Если я заполняю поле "видимая зона текста", то текст не сворачивается, а остается открытым.

Какие нужно внести изменения в скрипт, чтобы все работало корректно?

HTML

<div class="show_text">
  <div id="detail_text_resize" onclick="this.style.display='none';document.getElementById('detail_text_minimize').style.display='inline-block';document.getElementById('detail_text').style.overflow='';document.getElementById('detail_text').style.height='auto';" style="display:none;"><img src="картинка.png">показать полностью</div>
  <div id="detail_text_minimize" onclick="this.style.display='none';document.getElementById('detail_text').style.height='<?=$arResult['PROPERTIES']['RESIZE_TEXT']['VALUE']?>';document.getElementById('detail_text_resize').style.display='inline-block';document.getElementById('detail_text').style.overflow='hidden';" style="display:none;"><img src="картинка.png">свернуть</div>
</div>

Сам скрипт

function resize_text_field(){
        if(document.getElementById("detail_text").offsetHeight > 200){
            document.getElementById("detail_text").style.overflow = "hidden";
            document.getElementById("detail_text").style.height = "<?=$arResult['PROPERTIES']['RESIZE_TEXT']['VALUE']?>";
            document.getElementById("detail_text_resize").style.display = "";
        }//else
            //document.getElementById("detail_text_resize").style.display = "";
    }
    resize_text_field();
    onload = function(){ resize_text_field() }
        else {
        if(document.getElementById("detail_text").style.height = "<?=$arResult['PROPERTIES']['NO_RESIZE_TEXT']['VALUE']?>";
           document.getElementById("detail_text_resize").style.display = "block";
        }//else
            //document.getElementById("detail_text_resize").style.display = "block";
    }
    resize_text_field();
    onload = function(){ resize_text_field() }
READ ALSO
Как при клике изменить стили dom-элемента?

Как при клике изменить стили dom-элемента?

Работаю с этой библиотекойК сожалению, между блоками в ней нет отступов, они просто склеиваются(когда перестраиваются друг под друга на маленьком...

328
Как в форме изменить положение кнопки?

Как в форме изменить положение кнопки?

У меня есть форма, в ней текстовое поле и кнопкаПри попытке сдвинуть кнопку, поле двигается ровно на ту же величину

235
jquery пробежать по всем дочерним элементам

jquery пробежать по всем дочерним элементам

Мне необходимо найти все элементы с классом incorrect, когда у меня есть this объекта одного из input в таблице (не важно какого), после этого по набору...

282
Не получается обработать LongPoll VK API

Не получается обработать LongPoll VK API

Подгружаю себе на сайт диалоги из ВКДелаю запрос messages

369