Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript/HTML中为按钮设置事件处理程序_Javascript_Html - Fatal编程技术网

在Javascript/HTML中为按钮设置事件处理程序

在Javascript/HTML中为按钮设置事件处理程序,javascript,html,Javascript,Html,我想为所有“添加”按钮设置事件处理程序。你对一个普通的JS代码片段满意吗? 沿着这些思路做一些事情可以: function registerHandlers () { var buttons = document.querySelectorAll('.button'); [].slice.call(buttons).forEach(function (button) { button.addEventListener('click', onClick, false); });

我想为所有“添加”按钮设置事件处理程序。

你对一个普通的JS代码片段满意吗? 沿着这些思路做一些事情可以:

function registerHandlers () {
  var buttons = document.querySelectorAll('.button');
  [].slice.call(buttons).forEach(function (button) {
    button.addEventListener('click', onClick, false);
  });
}

function onClick (event) {
  event.preventDefault();
  var button = event.target;
  var id = button.id;
  var desc = document.getElementById(id + '-img').getAttribute('title');
  var qty = document.getElementById(id + '-qty').value;

  addToTable(desc, qty);
}

function addToTable (desc, qty) {
  var row = '<tr><td align="left">' + desc + '</td><td align="right">' + qty + '</td></tr>';
  var tbody = document.querySelector('#orderlist tbody');
  tbody.innerHTML = tbody.innerHTML + row;
}

registerHandlers();
函数寄存器句柄(){
var buttons=document.queryselectoral('.button');
[].slice.call(按钮).forEach(函数(按钮){
addEventListener('click',onClick,false);
});
}
函数onClick(事件){
event.preventDefault();
var按钮=event.target;
var id=button.id;
var desc=document.getElementById(id+'-img').getAttribute('title');
var qty=document.getElementById(id+'-qty')。值;
可添加表(描述、数量);
}
功能添加表(说明,数量){
变量行=“”+描述+“”+数量+“”;
var tbody=document.querySelector(“#orderlist tbody”);
tbody.innerHTML=tbody.innerHTML+行;
}
寄存器句柄();
代码未经测试:-) 但它的工作原理如下:

注册管理员:

  • 查找页面上具有类“button”的所有元素(通过CSS选择器)
  • 使用将节点列表中的结果转换为数组
  • 浏览列表并注册一个事件监听器,以便“单击”该元素
  • onClick:

  • 停止浏览器的默认行为
  • 通过检查按钮来确定单击的按钮
  • 获取关联ID属性的值
  • 为图像构建选择器字符串,并为其构建整个文档。读取找到的图像的
    标题
    属性。(如果未找到此类元素,则可能会崩溃)
  • 数量也一样
  • 更新表
  • 可添加:

  • 构建一个介于
    desc
    quantity
    之间的字符串。您可能希望通过使用或投入更多的精力,并通过这种方式获得一些健全性检查
  • 查找订单列表的
  • 将它的
    innerHTML
    附加到新行中

  • 最后,请调用registerHandler来完成上述工作。

    有javascript代码吗?到目前为止,您尝试了哪些代码?