31-讨论
5.7.3 讨论
知道feeping creaturism(也就是creeping featurism,可怕的特征主义)总是一件好事。如果所需要的就只是切换复选框状态,可以这样编码:
jQuery.fn.toggleCheck = function( on ) {
return on !== undefined ?
this.attr( 'checked', on ) :
this.each( function( i, element ) {
var $element = $(element);
$element.attr( 'checked', ! $element.attr('checked') );
});
};
这比 .toggleAttr()
方法简单一些,但是只能用于 checked
属性,不能用于其他。如果以后需要 .toggleEnable()
方法怎么办?复制整个方法改变几个名称?
在 .toggleAttr()
中所作的额外工作给我们带来了许多灵活性:现在我们能够编写一整组属性切换器,每个都只需要一行代码。
注意
在编写这类新的工具方法之前,检查你正在使用的jQuery版本文档,在jQuery的未来版本中有可能添加类似的方法,你也许不再需要花费力气编写自己的方法。