单击图像并计算单击次数时如何使用.addEventListener(Javascript)

单击图像并计算单击次数时如何使用.addEventListener(Javascript),javascript,Javascript,//*我试图点击一张图片,它会计算点击次数*// var addUp = function(counterId) { var count = 0; elem.addEventListener('click', function(counterID){ return function () { var counterEle = document.getElementById(counterId); if (counterEle) counter

//*我试图点击一张图片,它会计算点击次数*//

var addUp = function(counterId) {
  var count = 0;

elem.addEventListener('click', function(counterID){
    return function () {
        var counterEle = document.getElementById(counterId);
    if (counterEle)
        counterEle.innerHTML = "Picture Clicks: " + ++count;
       }
    };
   
var elem = document.getElementById('PicC');
    PicC.addEventListener("click", addUp("PicC-counter"), false);

<img id="PicC" src="avatar.png" alt="Avatar" style="width:200px" onclick="addUp()">
var addUp=函数(计数器ID){
var计数=0;
元素addEventListener('click',函数(计数器ID){
返回函数(){
var counterEle=document.getElementById(counterId);
如果(计数器)
counterEle.innerHTML=“图片点击:”+++计数;
}
};
var elem=document.getElementById('PicC');
PicC.addEventListener(“点击”,加法(“PicC计数器”),false;
函数单击计数(元素、侦听器){
如果(!element)抛出新错误(“没有要侦听的元素”);
单击CountObj={};
clickCountObj.clickCount=0;
clickCountObj.clickDelay=500;
单击CountObj.element=元素;
clickCountObj.lastClickTime=0;
单击CountListener=函数(e){
如果((例如时间戳-clickCountObj.clickDelay)
您使它变得比需要的复杂得多

const output=document.getElementById(“count”);
document.getElementById('PicC')。addEventListener(“单击”),函数(事件){
output.textContent=+output.textContent+1;
});


单击count=0
据我所知,出现了以下问题:

  • addEventListener
    在函数中
  • addEventListener
    不接受函数参数
  • 计数
    每次单击都会被重置
  • 还有更多
您只需将事件侦听器连接到一个函数,该函数将递增
单击次数
,并将值添加到单击计数器

var点击次数=0;
document.getElementById(“clickme”).addEventListener(“click”,addClick);
函数addClick(){
点击++;
document.getElementById(“clickCounter”).innerHTML=“图片点击:”+点击;
}
#单击我{
背景色:黑色;
宽度:100px;
高度:100px;

图片点击:0
对于这样一个简单的任务,不需要addEventListener

我的建议(未添加CSS):

var i=1;
PicC.onclick=()=>{
counter.innerHTML=i;
i++;
}



单击:0
我尝试添加此项,因为它对我来说最有意义,但我仍然缺少一些内容。图像单击器主体{背景色:黑色;文本对齐:中间;颜色:白色;字体系列:Arial,Helvetica,sans serif;}var clicks=0;document.getElementById(“PicC”).addEventListener(“单击”,addClick);函数addClick(){clicks++;document.getElementById(“clickCounter”).innerHTML=“图片单击:”+clicks;}单击计数器单击要添加到计数器的图像。

图片单击:0哦,该死,这并没有保留我的格式设置
function clickCount(element, listener) {
  if (!element) throw new Error("No element to listen to");
  let clickCountObj = {};
  clickCountObj.clickCount = 0;
  clickCountObj.clickDelay = 500;
  clickCountObj.element = element;
  clickCountObj.lastClickTime = 0;
  let clickCountListener = function (e) {
    if ((e.timeStamp - clickCountObj.clickDelay) < clickCountObj.lastClickTime) {
      clickCountObj.clickCount = clickCountObj.clickCount + 1;
    }
    else {
      clickCountObj.clickCount = 1;
    }
    clickCountObj.lastClickTime = e.timeStamp;
    listener.call(element, clickCountObj.clickCount, e);
  };
  clickCountObj.remove = function () {
    element.removeEventListener("click", clickCountListener);
  }
  element.addEventListener("click", clickCountListener);
  return clickCountObj;
}