Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.09.2016, 09:00
Новичок на форуме
Отправить личное сообщение для KingRex Посмотреть профиль Найти все сообщения от KingRex
 
Регистрация: 02.09.2016
Сообщений: 5

Смена содержимого в div'e
Здравствуйте форумчане) Не подскажите есть такая идея реализовать меню на сайте(в левой колонке) не через отдельные ссылки, а через смену с содержимого в блоке(правая колонка), на сколько вообще это адекватная идея по канонам программирования? Такая идея посетила потому что содержимое в правом блоке по большей части это заголовок + 2-3 абзаца текста.

<div class="demo_container">
    <div id='cssmenu'>
        <ul>
           <li><a href='index.html'><span>Главная</span></a>
           <hr>
           <li class='has-sub' onclick="CH1()"><a href='#'><span>menu1</span></a>
              <ul>
                 <li class='active'><a href='menu1.html'><span>submenu1</span></a></li>
                 <li class='active'><a href='menu2.html'><span>submenu2</span></a></li>                                         
              </ul>           
           <li><a href='menu2.html'><span>menu2</span></a></li>
           <li><a href='menu3.html'><span>menu3</span></a></li>        
        </ul>
    </div>

</div>

пока что все меню построено на доп.ссылках, функцию "onclick=CH1()" я добавил только на menu1, "change1" - ид дива в правой колонке в котором должны происходить замены
function CH1() {
    document.getElementById("Change1").innerHTML = "<h4>Пример заголовка</h4><p>Пример Абзаца 1.</p> <p>Пример абзаца 2</p> <p>Пример Абзаца 3</p>"
   }

Воот... интересует пару вопросов?
1. Правильная ли это форма записи, или может нужно там как-то через createElement('p')+что-то там и тд? честно не знаю, подскажите, пожалуйста
2. Как к этим абзацам и заголовкам добавить картинки
И самый главный вопрос
3. Дело в том что в меню есть 2 сабменю, которые открываются при клике на "menu1", и так получается что функция примененная к "menu1", распространяется и на входящие в нее submenu1-2, т.е. при кликах на них открывается то что и при клике на menu1, но на них нужно повесить другие функции, подскажите как сделать так что бы функция поставленная на menu1 не распространялась на сабменю которые из нее выплывают
Ответить с цитированием
  #2 (permalink)  
Старый 02.09.2016, 09:17
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Когда уберешь все онклики, появится задача найти клики, решение которой само по себе приведет к правильному ответу.
Ответить с цитированием
  #3 (permalink)  
Старый 02.09.2016, 10:35
Новичок на форуме
Отправить личное сообщение для KingRex Посмотреть профиль Найти все сообщения от KingRex
 
Регистрация: 02.09.2016
Сообщений: 5

Сообщение от warren buffet Посмотреть сообщение
Когда уберешь все онклики, появится задача найти клики, решение которой само по себе приведет к правильному ответу.
не очень понял, можно немного подробней?
Ответить с цитированием
  #4 (permalink)  
Старый 02.09.2016, 12:36
Профессор
Отправить личное сообщение для Царь Леонид Посмотреть профиль Найти все сообщения от Царь Леонид
 
Регистрация: 22.08.2013
Сообщений: 217

Я бы так наверное сделал
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
<div class="demo_container">
    <div id='cssmenu'>
        <ul>
           <li><a href='index.html'><span>Главная</span></a>
           <hr>
           <li class='has-sub'><a href='#'><span  data-id='m1'>menu1</span></a>
              <ul>
                 <li class='active'><a href='menu1.html'><span>submenu1</span></a></li>
                 <li class='active'><a href='menu2.html'><span data-id='m2'>submenu2</span></a></li>                                         
              </ul>           
           <li><a href='menu2.html'><span>menu2</span></a></li>
           <li><a href='menu3.html'><span>menu3</span></a></li>        
        </ul>
    </div>
  <div id="data"></div>
<script>
  var data = {
  m1: {
    text: 'Много текста по этому пункту'
  },
  m2: {
    text: 'много текста по другому пункту'
  }
};
var menu = document.getElementById('cssmenu')
var container = document.getElementById('data')
menu.addEventListener('click', function(e){
  e.preventDefault();
  if(e.target.dataset.id){container.innerHTML = data[e.target.dataset.id].text;}
})
  </script>
</div>
</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 03.09.2016, 00:26
Новичок на форуме
Отправить личное сообщение для KingRex Посмотреть профиль Найти все сообщения от KingRex
 
Регистрация: 02.09.2016
Сообщений: 5

Сообщение от Царь Леонид Посмотреть сообщение
Я бы так наверное сделал
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
<div class="demo_container">
    <div id='cssmenu'>
        <ul>
           <li><a href='index.html'><span>Главная</span></a>
           <hr>
           <li class='has-sub'><a href='#'><span  data-id='m1'>menu1</span></a>
              <ul>
                 <li class='active'><a href='menu1.html'><span>submenu1</span></a></li>
                 <li class='active'><a href='menu2.html'><span data-id='m2'>submenu2</span></a></li>                                         
              </ul>           
           <li><a href='menu2.html'><span>menu2</span></a></li>
           <li><a href='menu3.html'><span>menu3</span></a></li>        
        </ul>
    </div>
  <div id="data"></div>
<script>
  var data = {
  m1: {
    text: 'Много текста по этому пункту'
  },
  m2: {
    text: 'много текста по другому пункту'
  }
};
var menu = document.getElementById('cssmenu')
var container = document.getElementById('data')
menu.addEventListener('click', function(e){
  e.preventDefault();
  if(e.target.dataset.id){container.innerHTML = data[e.target.dataset.id].text;}
})
  </script>
</div>
</body>
</html>
Спасибо большое, а не подскажешь как приминить стили(теги хотя бы) к этому "text" и как добавить картинки, т.е. тег img?
Ответить с цитированием
  #6 (permalink)  
Старый 03.09.2016, 08:27
Профессор
Отправить личное сообщение для Царь Леонид Посмотреть профиль Найти все сообщения от Царь Леонид
 
Регистрация: 22.08.2013
Сообщений: 217

Сообщение от KingRex Посмотреть сообщение
Спасибо большое, а не подскажешь как приминить стили(теги хотя бы) к этому "text" и как добавить картинки, т.е. тег img?
Точно также как ты хотел добавить , например
'<span class="myClass">Мой текст</span>'
'<img src="/mypath.jpg"/>'
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена фонового изображения по кругу, по клику на одну кнопку Manoftheyear Элементы интерфейса 7 21.03.2016 06:45
Нужен простой JS (смена количества + смена цены) RadCor Работа 1 27.04.2015 00:53
Нужен простой JS 500 руб (смена количества + смена цены) RadCor Работа 9 27.04.2015 00:45
Плавная смена background-image div-ва в котором есть контент phenom jQuery 1 09.04.2013 14:28
Частичное изменение содержимого элемента kuhok Events/DOM/Window 28 07.09.2009 22:44