请看以下小提琴:http://jsfiddle.net/K9NjY/
我在此代码上花费了3-4个小时,并且将其范围缩小到了最短的版本,现在我陷入了困境。
问题:
1.点击“ divOne”
2.单击开关DivNames
3.点击“ divTwo”
*为什么divOne仍处于警报状态?如何停止呢? *逻辑告诉我,当我们单击divTwo
时,我们只会收到一个警告,提示“ divTwo”
请注意,doSomething()
具有一个由其中的click
触发的功能。这不能更改,即$("." + divName).click(function(){...});
必须保留在doSomething()
内部
我该怎么办?
最佳答案
使用off
删除事件监听器,然后再次添加,切换类名将不会取消绑定现有事件监听器-
function doSomething(divName){
$(".action").off().addClass(divName).html(divName).click(function(){
alert(divName);
});
}
FIDDLE