html文件
<div class="work">
<ul id="palette" class="palette-pen" style="top:178px;">
<li class="palette-colour-1"><span></span></li>
<li class="palette-colour-2"><span></span></li>
<li class="palette-colour-3"><span></span></li>
<li class="palette-colour-4"><span></span></li>
<li class="palette-colour-5"><span></span></li>
<li class="palette-colour-6"><span></span></li>
</ul>
</div>
js file
VC.View.Workspace_Tool_Image = Backbone.View.extend({
events : {
'click .palette-pen li' : 'paint'
},
initialize : function() {
var obj = this;
/* scope */
_.bindAll(this, 'paint');
},
paint: function() {
var obj = this;
$('ul.palette-pen li').click(function(e) {
alert(obj.$el.attr('class'));
});
},
})
我想获得我点击的特定li
的课程,但是当我第一次点击li
时,它就没有提醒。当我再次点击时,它会针对div
的类(work
)提供1个提醒,而不是我点击的li
的类。
如果我点击li
第n次,那么它会给我n-1警报。为什么会这样?无论是单次点击是第n次还是第7次,都必须只发出一次警报。
所以请帮我找出解决方案。
答案 0 :(得分:3)
每次单击时,您都会添加一个显示警报的单击侦听器。所以结果是有道理的。由于只在您点击时调用“paint”,只需将警报直接放在:
中paint : function(e) {
alert($(e.currentTarget).attr('class'));
},