javascript在两种状态之间更改按钮id-哪种方式最好
javascript changing button id between two states - which way is best
所以我有一个这样的按钮。。。。
<a id="fullcollapse" class="btn btn-lg btn-primary" href="#" role="button">Collapse menu «</a>
基本上,我想把上面的onclick的id改为"baseexpand",当下一个onclick碰巧恢复到原来的id="fullcollapse"时
我很欣赏这对大多数人来说可能很容易,并且看过文档,从Jquery到if-else语句的所有示例。。。我感兴趣的是其他人会如何处理这个问题。Jquery会更可取,因为id与之相关。
正如我前面所说,您应该保持ID不变,并在单击时切换一个类。更改id可能会在代码的其他地方造成混乱。
使用jQuery实现起来非常简单,并且添加了:after
伪选择器,您甚至可以更改链接的文本:
$(function() {
$("#menuButton").click(function() {
$(this).toggleClass("fullcollapse baseexpand");
});
});
.fullcollapse {
color: green;
}
.fullcollapse:after {
content: 'Collapse menu <<';
}
.baseexpand {
color: red;
}
.baseexpand:after {
content: 'Expand menu >>';
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a id="menuButton" class="btn btn-lg btn-primary fullcollapse" href="#" role="button"></a>
你可以试试这个:
$('a#fullcollapse').click(function(){
$(this).attr('id',$(this).attr('id')=='fullcollapse'?'baseexpand':'fullcollapse');
});
JSfiddle:http://jsfiddle.net/samirkumardas/od2murdk/
$(function() {
$( '#fullcollapse, #baseexpand' ).click(function() {
if ( $( this ).attr('id') === 'fullcollapse' ) {
$( this ).attr('id', 'baseexpand');
} else {
$( this ).attr('id', 'fullcollapse');
}
});
});
此代码未经测试,因此不能保证它能正常工作。
相关文章:
- 使用javascript存储变量的最安全方式
- 如何以最有效的方式实现这个多维数组
- 显示数据的最快方式
- 以最封装的方式封装/封装ScalaJS react js组件(react stick)
- 获取最接近所选选项的最快方式
- 在 Chrome 扩展程序中创建自定义事件的最惯用方式
- 在滚动中旋转元素,哪种方式最轻
- 在保持元素一致性的同时旋转数组元素的最佳方式'id
- HTML5游戏中最有效的视差方式
- 在网页上连续播放mp3的最有效方式(如网络收音机)
- 在JavaScript中,最紧凑、最优雅、最高效的四舍五入方式是什么
- 预隐藏元素是最容易访问的方式
- 创建一个bookmarklet,可以检索文本框的所有最大长度,然后在表中打印id和最大长度
- 哪种循环方式最快?[出于好奇]
- 哪种方式最适合为每个访问者创建一个公共变量
- Javascript的滚动大小调整ID与最小值首先应用
- 引用表的行ID的最安全的方法
- 哪种方式最适合在JavaScript中创建对象?在对象属性之前是否需要' var '
- 如果未设置,请设置密钥 - 哪种方式最有效
- 在对象数组中查找具有“id”属性最大值的对象