Поиск события onClick, если для элемента или его родителей установлено - PullRequest
0 голосов
/ 22 сентября 2018

Я хочу изменить поведение шаблона HTML + JS, но я не хочу делать то, что уже сделано.Предположим, у нас есть иерархия элементов, и похоже, что внутренняя вызывает функцию для ее события onclick.но когда я выбираю его на консоли Chrome Inspector и проверяю, есть ли у него что-то для onclick, он возвращает null, я думаю, что он разработан в более общем виде или, возможно, на другом свойстве?

Я хочу найти эту функцию, обернуть ее в мою и вызвать ее после выполнения чего-то еще.

Иерархия выглядит следующим образом:

<ul> <li data-id="1234"> <div> <a href="#">the button</a> </div> </li> ... </ul>

всякий раз, когда button нажата data-id отправляется на сервер через ajax.

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Я немного поиграл с es6 и получил ожидаемый результат: https://codepen.io/omgitsevan/pen/yxrVVM

, но в основном код выглядит следующим образом:

Javascript

document.addEventListener('click', (evt) => {
  function getDataAttr(node, attrValue) {
    if (!node.getAttribute(attrValue)) {
      return getDataAttr(node.parentNode, attrValue)
    }

    console.log(node.getAttribute(attrValue))
  }

  getDataAttr(evt.target, 'data-id');
})

HTML

<ul>
  <li data-id="1234">
    <div> <a href="#">the button</a> </div>
  </li> ... </ul>
0 голосов
/ 22 сентября 2018

Я надеюсь, что это будет работать

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"> </script>
<script>
   $(document).ready(function(){
    $(".data").click(function(){
    var data = this.parentNode.parentNode.getAttribute("data-id");
    $.ajax({
    url:"url",
    data:{'data':data},
    type:"post",
    success:function((){
      });
     })
   });
});
</script>
</head>
<body>

 <li data-id="1234"> <div> <a  class="data" onclick = abc(event)>the button</a> </div>


</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...