我有一个用户(将要)能够选择模板的布局。根据用户单击的按钮,评估和更新所有匹配的(按类名)按钮。
假设我有四个不同模板的 4 个按钮。每个按钮自然都可以点击。单击的按钮应成为新的激活模板,其他按钮应重置(因为在另一个模板处于活动状态之前)。我以为我已经弄清楚了,但由于某种原因,当我想重新分配一个新按钮时,只有最后一个按钮被一个新按钮替换。其他以前的按钮不是。
JSFiddle 中提供的情况不是一个功能齐全的解决方案,但我很好奇为什么只有最后一个按钮被正确处理。谁能告诉我更多关于这个的事情?
可以找到小提琴:http: //jsfiddle.net/z3jYC/。(这是一个工作示例,提供了显示示例的裸代码)。
这是代码:
HTML:
<button class="activate-tpl" data-template-name="temp1">activate template</button><br/>
<button class="activate-tpl" data-template-name="temp2">activate template</button><br/>
<button class="activate-tpl" data-template-name="temp3">activate template</button><br/>
<button class="activate-tpl" data-template-name="temp4">activate template</button>
JS
$(document).ready(function() {
$('button').button();
var oButton = $('<button class="activate-tpl" data-template-name="">activate template</button>').button();
$('.activate-tpl').click(function() {
var sClicked = $(this).attr('data-template-name');
$('.activate-tpl').each(function() {
if($(this).attr('data-template-name') != sClicked) {
var oNewButton = oButton;
oNewButton.attr('data-template-name', $(this).attr('data-template-name'));
$(this).replaceWith(oNewButton);
} else {
$(this).replaceWith('You\'ve activated me!');
}
});
});
});