使用.each()将.click()分配给多个类

时间:2015-02-11 19:14:54

标签: jquery each

我试图将事件处理程序分配给将在各个点动态创建的一堆类,并以有效的方式执行此操作。

我想我可以创建一个键值对列表,以类作为键,函数作为值,然后执行.each()循环,将事件处理程序分配给容器元素(在本例中为&#) 39; .panel&#39)。但是,这会导致在页面加载时调用所有函数。知道问题是什么吗?

var functionList = {
                       '.name': nameChange(),
                       '.email': sendEmail(),
                       '.notes': editNotes()                 
    };

$.each(functionList, function(k,v) {    
     $('.panel').on('click',k,v)
});

更新:为了清楚起见,我将.click()更改为.on('点击')(问题仍然存在)

2 个答案:

答案 0 :(得分:4)

您的问题在于functionList对象的声明。您正在将每个属性的值设置为函数的值,因为您实际上正在为每个属性调用该函数。尝试删除每个值的parantheses。

var functionList = {
   '.name': nameChange,
   '.email': sendEmail,
   '.notes': editNotes                 
};

答案 1 :(得分:0)

.on()用于绑定动态添加元素的事件。试一试 -

$.each(functionList, function(k,v) {    
  $('.panel').on('click', k, function(){v})
});