我是Mootools的新手,我发现我必须使用点击元素,但我不能100%确定我的意思是将它放在下面的代码中:
function setInStockOption (labels, e) {
active = false;
labels.some (function (item,index) {
if(item.hasClass ('selected')) {
if(item.hasClass ('unavailable')) {
item.removeClass('selected');
item.addClass ('unselected');
active = true;
} else {
return true;
}
}
if(active) {
if (!item.hasClass ('unavailable')) {
e.target = this;
item.fireEvent ('click', e);
active = false;
return true;
}
}
});
}
window.addEvent('load', function(e) {
var labels = $$('div.option-radios label.radio');
setInStockOption(labels, e);
});
我基本上需要添加在点击时选择的类。目前,此脚本将所选类添加到html中Radio的第一个子节点,然后当您单击其他节点时,它将添加所选的类。我基本上希望在页面加载时取消选择所有类 。
有什么想法吗?
答案 0 :(得分:1)
你会想要这样的东西:
window.addEvent('domready', function(e) {
$$('div.option-radios label.radio').each(function(label, i) {
label.addEvent('click', function(event) {
event.target.toggleClass('selected');
});
});
});
请注意,这使用Array.each
方法而不是Array.some
。后者并没有做到你所期望的。然后,它会在每个标签上注册一个click
事件,只需切换事件目标上的selected
类。
然后,您可以向each
循环添加其他初始化代码,并为click事件处理程序添加更多逻辑。
我还使用domready
事件,该事件通常比it fires earlier load
优先于{{1}}。