Javascript - 使用静态变量添加单击侦听器

时间:2014-10-12 08:57:10

标签: javascript jquery

我有一个代表PhotoFile的类。它包含属性,它可以添加img元素。

它还包含一个静态变量,它为每个img元素(PhotoFile类)创建了一个唯一的css类编号(如“.no-1”,变量名为PhotoFile.count)。

var PhotoFile = function(){  

   /*attributes */   
   PhotoFile.count = PhotoFile.count+1;    
   this.specificClass = ".no-" + PhotoFile.count;

   /*event listener*/
   this.addClickEvents = function(){

      $("p.listener" + this.specificClass).click( function(){

         console.log("onClick on " + this.SpecificClass + " will fire " + "img" + this.SpecificClass);
         $("img " + this.specificClass).hide();
      });
    }
}

我尝试附加一个jQuery点击事件,我用当前的唯一数字注册它。

如果在点击时输出类似的内容(5 - 是页面中的PhotoFiles数量):

onClick on .no-5 will fire img.no-5
onClick on .no-5 will fire img.no-5
onClick on .no-5 will fire img.no-5

但是当它触发该事件时,它将始终使用最后一个数字执行事件,并且我假设它使用PhotoFile.count的最后一个值触发事件。

如何使用唯一的唯一css类将点击事件添加到该类的每个对象?

我认为在触发元素时,它总是采用最终的静态变量。我应该如何绑定元素,以便事件将采用当前类的静态变量?

1 个答案:

答案 0 :(得分:0)

没有看到代码或工作小提琴的某些上下文,他看起来像是关闭的问题。您希望将绑定放在单独的函数中以捕获该值。有关背景信息,请参阅here