javascript - <a> 元素上未触发单击事件

标签 javascript jquery

我有多个a元素。我正在尝试处理单击事件以在警报中显示 id单击的链接但没有发生任何事情。请帮忙!

$(".sites").click(function() {
  alert('handlin');
  alert($(this).attr("id"));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="#" class="sites" id="1">test1</a>
<a href="#" class="sites" id="2">test2</a>

链接在此处生成:

$.getJSON(categoriesURL, {
  term: request
}, function(data) {
  var iHtml = '';
  $.each(data, function(i, item) {
    if (10 <= i) 
      return false;
    iHtml += '<li><a href="#" class="sites" id="'+item.id+'">' + (item.title || '') + '</a></li>';
  });
  $('#categories').append(iHtml);
});

最佳答案

你必须在ajax调用完成后绑定(bind)事件

 function bindButtonClick(){
       $(document).on('click', '.sites', function() {
      alert('handlin');
      alert($(this).attr("id"));
    });
    }

$.getJSON(categoriesURL, {
  term: request
}, function(data) {
  var iHtml = '';
  $.each(data, function(i, item) {
    if (10 <= i) 
      return false;
    iHtml += '<li><a href="#" class="sites" id="'+item.id+'">' + (item.title || '') + '</a></li>';
  });
  $('#categories').append(iHtml);
  bindButtonClick();
});

关于javascript - <a> 元素上未触发单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52161345/

相关文章:

jquery 响应内容 :after

javascript - $.height 在第一次加载页面时返回 0

javascript - AJAX 中的 Promise 和 Success 之间的区别

javascript - 在 JavaScript 中使用参数更改函数内的命名空间数组名称

javascript - html输入末尾有一个不可去除的问号

javascript - 如何从异步调用返回响应?

javascript - 将React与Electron一起使用

java - 使用 RingoJs 模拟浏览器

javascript - 使用 JavaScript 的单选按钮

javascript - jQuery – 将类添加到具有相同类的第二个元素,然后在中断时重置