Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как исправить скрипт? (https://javascript.ru/forum/misc/78168-kak-ispravit-skript.html)

Spiker 05.08.2019 11:35

Как исправить скрипт?
 
$(function(){
											$(".block_main").click(function() {
												if (document.getElementById("block_title").style.display = "none" || document.getElementById("block_title").style.display  = "") {
													document.getElementById("block_title").style.display = "block";
												}else{
													document.getElementById("block_title").style.display = "none";
												}
												
												
											});
										});


Суть такая мне надо что бы при нажатии на блок с классом block_main к блоку с id block_title добавлялся display = "block" если style не задан или не display = "block", а если style display = "block" то изменить его на display = "none"
сейчас display = "none" прописан у класса block_title в css файле

Dilettante_Pro 05.08.2019 11:52

<style>
.block_title { display:none; }
</style>
<div class="block_main">
   <div id="block_title" class="block_title">Title</div>
   Block main
</div>
<script src="https://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(function(){											 
   $(".block_main").click(function() {
        $("#block_title").toggle("block_title");
    });
});
</script>

MC-XOBAHCK 05.08.2019 12:03

Без jQuery по условиям задачи:
<style>#block_title {display: none}</style>

<div id="block_title">БЛОК TITLE</div>
<div class="block_main">БЛОК MAIN - на него нажимать</div>

<script>
    document.querySelector('.block_main').addEventListener('click', function() {
        var blockTitle = document.querySelector('#block_title'),
            valDisplay = blockTitle.style.display;

        if (valDisplay == '' || valDisplay == 'none') {
            blockTitle.style.display = "block"
        }
        else {
            blockTitle.style.display = "none"
        }
    });
</script>


Тоже самое, только чуть компактней в коде:
document.querySelector('.block_main').addEventListener('click', function() {
    var blockTitle = document.querySelector('#block_title'),
        valDisplay = blockTitle.style.display;

    blockTitle.style.display = valDisplay == '' || valDisplay == 'none' ? 'block' : 'none';
});

ksa 05.08.2019 14:57

Цитата:

Сообщение от MC-XOBAHCK
blockTitle.style.display = valDisplay == '' || valDisplay == 'none' ? 'block' : 'none';

Можно и так... ;)
blockTitle.style.display = valDisplay != 'block' ? 'block' : 'none';


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