【发布时间】:2014-02-05 12:06:43
【问题描述】:
$('#checkout #button-method').on('click', function() {
$('#button-info').removeClass('pressed').addClass('pointer');
$('#button-method').addClass('pressed').removeClass('pointer');
$('#shipping-info').addClass('hide');
$('#shipping-method').addClass('add');
});
$('#checkout #button-info').on('click', function() {
$('#button-info').addClass('pressed').removeClass('pointer');
$('#button-method').removeClass('pressed').addClass('pointer');
$('#shipping-info').removeClass('hide');
$('#shipping-method').removeClass('add');
});
类 'pointer' 的 CSS 是 cursor:pointer;对于类“按下”是背景颜色的变化;对于“隐藏”类,显示:无;对于“添加”类,显示:块
有 2 个按钮(按钮方法和按钮信息)。单击按钮方法时,按钮信息被禁用,运输信息隐藏,运输方法出现。单击按钮信息时,会发生相反的过程。有没有办法在两个不同的元素上使用 toggleClass 来压缩这段代码?
【问题讨论】:
-
好吧,我将从缓存这些元素开始。由于 id 是唯一的,您可以简单地获取 id,无需像
#checkout #button-method那样查询 -
简短回答:是的。长答案,您可以更新您的 HTML 结构以允许稍微少一点的 JS 来做同样的事情。问题是:值得花时间让你的 JS 缩短一两行吗?
-
Bic 和 Andre 我喜欢你的代码示例。唯一的问题是按下的按钮仍然可以切换。我上面的代码使得在点击时,在按下另一个按钮之前没有与按下的交互。您将如何编织该功能,也许使用禁用?
-
@matenji 我修改了答案中最短的解决方案。您只需要检查单击的按钮是否还没有按下的类。
标签: javascript jquery css toggle