Как узнать id элемента, по которому кликнул?
Здравствуйте, есть список:
<div id='1' class='button_block'>Блок с новостями 1</div> <div id='2' class='button_block'>Блок с новостями 2</div> <div id='3' class='button_block'>Блок с новостями 2</div> ... Нужно, чтобы при нажатии на каждый из них появлялось окно, открывается оно с помощью такого кода (я его тестировал, он работает): $('.content').css("display","block"); А вот и блок который открывается: <div id='news' class='content' style='display: none;'> ТЕКСТ </div> Раньше, когда у меня был только один блок, который нужно было открывать, все работало хорошо. Теперь у меня несколько блоков, которые должны открываться при клике на свою ссылку. Думал решить эту задачу таким путем, но не получается: (Ошибика где-то в этом коде..) <script> $(document).ready(function(){ $(".button_block").click(function (){ var = idClick; idClick = $(this).attr('id'); if(idClick == 1) $('#news').css("display","block"); if(idClick == 2) $('#chat').css("display","block"); }); }); </script> <div id='news' class='content' style='display: none;'> ТЕКСТ </div> <div id='chat' class='content' style='display: none;'> ТЕКСТ </div> Помогите пожалуйста) |
Цитата:
Цитата:
Повторяй на ночь: this.id, this.id, this.id ... Цитата:
Можно сделать в десять раз проще и короче: var map = ['news', 'chat']; var id = 1; alert( '#' + map[id-1] ); var id = 2; alert( '#' + map[id-1] ); |
Ой реально что-то я с "var = idClick" затупил жестко.
Разъясни, что будет делать твой код: var map = ['news', 'chat']; var id = 1; alert( '#' + map[id-1] ); var id = 2; alert( '#' + map[id-1] ); Этот код не будет же выполнять ту функцию, которая мне нужна? |
Цитата:
<div id='1' class='button_block'>Блок с новостями 1</div> <div id='2' class='button_block'>Блок с новостями 2</div> <div id='3' class='button_block'>Блок с новостями 2</div> <div id='news' class='content' style='display: none;'> ТЕКСТ news </div> <div id='chat' class='content' style='display: none;'> ТЕКСТ chat </div> <script src="//code.jquery.com/jquery-latest.js"></script> <script> (function(){ var idMap = ['news', 'chat', 'news']; $(".button_block").click(function (){ $('#' + idMap[ this.id - 1 ]).show(); }); })(); </script> |
1) Спасибо все работает, только вот этот код работает, когда я <script> вставляю после разметки html, а когда в начале, например, в <head>, то код <script> не работает. Разве это существенно? Я где-то читал, что все скрипты должны быть в <head>
2) Посоветуйте сайты, где можно обучиться js. Спасибо еще раз!:) |
А меню в шапке это страницы вам не подходит?
|
Цитата:
Я обычно размещаю все скрипты конце body - так страница отображается существенно быстрее. |
спасибон большой) к вам прислушаюсь!
|
Нужна помощь, антологичная проблема
В js я профан, только учусь, у меня есть код:
window.onload = function() { document.getElementById("item0").onclick = function() { if (chrome.app.window.get("WindowsStarted").getBounds().height != 40) { chrome.app.window.get("WindowsStarted").setBounds({"height": 40}); document.getElementById("content0").style.display = "none"; document.getElementById("content1").style.display = "none"; document.getElementById("content2").style.display = "none"; document.getElementById("content3").style.display = "none"; document.getElementById("content4").style.display = "none"; document.getElementById("content5").style.display = "none"; document.getElementById("content6").style.display = "none"; } else { chrome.app.window.get("WindowsStarted").setBounds({"height": 250}); document.getElementById("content0").style.display = "block"; } }; }; Все работает, но у меня еще есть item0 item1 item2 item3 item4 item5 item6 и content0 content1 content2 content3 content4 content5 content6 Не хочу писать для каждого item2 такой же код как я привел выше, может можно как-то получит id элемента на который пользователь кликнул? Это все что надо. Буду признателен за помощь. |
Цитата:
Однако нужно еще сегрегировать родителя от его отпрысков, например так if(event.target!==this) |
Часовой пояс GMT +3, время: 13:56. |