Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как узнать id элемента, по которому кликнул? (https://javascript.ru/forum/dom-window/36848-kak-uznat-id-ehlementa-po-kotoromu-kliknul.html)

stomaks 27.05.2015 09:22

Спасибо за ответ, но у меня не получается внедрить его в свой код.

Вот полный код:
<head>
    <title></title>
    
    <link rel="stylesheet" type="text/css" href="style.css" />
    
    <script src="common.js"></script>
  </head>

  <body>
    <table>
      <tr>
        <td id="item0">
          <iframe src="content0.html" id="content0"></iframe>
          </td>
        <td id="item1">
          <iframe src="content1.html" id="content1"></iframe>
          </td>
        <td id="item2">
          <iframe src="content2.html" id="content2"></iframe>
          </td>
        <td id="item3">
          <iframe src="content3.html" id="content3"></iframe>
          </td>
        <td id="item4">
          <iframe src="content4.html" id="content4"></iframe>
          </td>
        <td id="item5">
          <iframe src="content5.html" id="content5"></iframe>
          </td>
        <td id="item6">
          <iframe src="content6.html" id="content6"></iframe>
          </td>
        <td id="item7">
          <div id="content7"></div>
          </td>
      </tr>
    </table>
  </body>



И соответственный ему js

window.onload = function() {
  var content_height = 500;
  
  document.getElementById("item0").onclick = function() {
         document.getElementById("content0").style.display = "block";
  };
  document.getElementById("item1").onclick = function() {
         document.getElementById("content1").style.display = "block";
  };
  document.getElementById("item2").onclick = function() {
         document.getElementById("content2").style.display = "block";
  };
  document.getElementById("item3").onclick = function() {
         document.getElementById("content3").style.display = "block";
  };
  document.getElementById("item4").onclick = function() {
         document.getElementById("content4").style.display = "block";
  };
  document.getElementById("item5").onclick = function() {
         document.getElementById("content5").style.display = "block";
  };
  document.getElementById("item6").onclick = function() {
         document.getElementById("content6").style.display = "block";
  };
  document.getElementById("item7").onclick = function() {window.close();};
  
};

(я упростил код, оставил только то, что касается моего вопроса.)

stomaks 27.05.2015 09:26

Я пытался сделать так (вставив this.id вместо item0 - item6, но так не работает):
document.getElementById(  this.id   ).onclick = function() {
         document.getElementById("content0").style.display = "block";
  };

Спасибо.

kostyanet 27.05.2015 09:32

Небось кликать некуда пока ячейка пустая.

Что вы там вообще городите?

kostyanet 27.05.2015 09:40

Это важно, иначе фиг поймешь ваше ТЗ, а программист это извините не заказчик который имеет право быть невменяемым, или платите деньги чтобы стать заказчиком и обрести сие право.

Обычно делается так. На коренной элемент вешается обработчик щелчка и этот обработчик представляет из себя контроллер, ну или роутер, я так и не понял до сих пор разницы.

var toggle=function(e){
    var el=e.target;
    if(el.nodeName=='TD')
        el.querySelector('iframe').style.display='block';
        
};

window.addEventListener('load',function(){
    var table = document.getElementById('table_id');
    table.addEventListener('click',toggle);
});


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