javascript - 使这段 JS 代码不引人注目。为未知 id 编写事件监听器

标签 javascript jquery unobtrusive-javascript

我一直在构建此 UI 的功能。我想为这些选项卡编写一个监听器,以使我的 js 不引人注目。它阻碍了我前进。现在我正在重构,是时候修复它了。我想编写一个事件监听器来获取被单击的选项卡的 id,并将其分配给一个变量。这就是我所拥有的:

<ul id="gal">

   <li class="glyphicons camera active" onclick="pullActive(this.id);" id="viewAll"><a href="#" ><i></i> View all photos <strong>(43)    </strong></a>
   </li>
   <li class="glyphicons circle_plus tab-stacked" onclick="pullActive(this.id);" id="addPhotos"><a href="#"><i></i> <span>Add Photos</span></a>
   </li>
</ul>

function pullActive(id){

 // gets the class for that id
  var getClassy = document.getElementById(id).className;
  findClass(getClassy, id);
  loadNew();

}  

最佳答案

如果没有 jQuery,你就必须这么做

var item = document.querySelector("#gal");
item.attachEventHandler("click", function(ev) {
   if (ev.target.tagName === "LI") {
      var id = ev.target.id;
      // ...
   }
});

在jquery中(当你像这样标记你的问题时)它看起来像这样

$(function() {
   $("#gal").delegate("li", "click", function() {
      var id = this.id;
      // ...
   });
});

关于javascript - 使这段 JS 代码不引人注目。为未知 id 编写事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23923515/

相关文章:

javascript - 您如何编写从数组返回值的函数?

javascript - 动态创建的元素上的事件绑定(bind)?

jquery - 如何构建一个ajax Web应用程序,如果浏览器不支持javascript,它可以优雅地回退?

javascript - Node.js express : Passing data from URL and session into served JavaScript file

javascript - 从匹配的 Regex JavaScript 中选择字符

javascript - jQuery div 动画

javascript - 侵入式和非侵入式 javascript 之间的区别

javascript - Ajax 深度链接是否可以在链接中不添加哈希 ('#' )

jquery - 使用 jQuery 在树加载中自动分配未确定的复选框

jQuery 动画 SVG 元素