有时我使用锚作为按钮,有时我只是使用按钮。我想禁用特定的clicky功能,以便:
- 他们看起来残疾了
- 他们不再被点击
我该怎么做
钮扣
按钮很容易禁用,因为已禁用是由浏览器处理的按钮属性:
<;输入类型=“提交”类=“btn”值=“我的输入提交”已禁用/>;
<;input type=“button”class=“btn”value=“我的输入按钮”已禁用/>;
<;按钮class=“btn”已禁用>;我的按钮</按钮>;
要使用自定义jQuery函数禁用这些功能,只需使用fn.extend():
//禁用函数
jQuery.fn.extend({
禁用:功能(状态){
返回此值。每个(函数(){
this.disabled=状态;
});
}
});
//残疾人士:
$('input[type=“submit”],input[type=“button”],button')。禁用(true);
//启用了:
$('input[type=“submit”],input[type=“button”],button')。禁用(false);
jsiddle禁用按钮和输入演示
否则,您将使用jQuery的prop()方法:
$('button').prop('disabled',true);
$('button').prop('disabled',false);
锚定标签
值得注意的是,disabled不是锚定标记的有效属性。因此,引导在其.btn元素上使用以下样式:
.btn.disabled、.btn[禁用]{
游标:默认值;
背景图像:无;
不透明度:0.65;
过滤器:α(不透明度=65);
-webkit盒阴影:无;
-莫兹盒阴影:无;
盒影:无;
颜色:#333;
背景色:#e6;
}
请注意[disabled]属性以及.disabled类是如何成为目标的。.disabled类是使锚定标记显示为禁用所需的
<;a href=”http://example.com“class=”btn“>;我的链接</a>;
当然,这不会阻止链接在单击时运行。以上链接将带我们到http://example.com. 为了防止出现这种情况,我们可以添加一段简单的jQuery代码,以使用禁用的类来调用事件。preventDefault():
$('body')。在('click','a.disabled',函数(事件){
event.preventDefault();
});
我们可以使用toggleClass()切换禁用的类:
jQuery.fn.extend({
禁用:功能(状态){
返回此值。每个(函数(){
var$this=$(this);
$this.toggleClass('disabled',state);
});
}
});
//残疾人士:
$('a')。禁用(true);
//启用了:
$('a')。禁用(false);
jsiddle禁用链接演示
合二为一
然后,我们可以扩展上面的disable函数来检查我们试图使用is()禁用的元素的类型。这样,如果它不是输入或按钮元素,我们可以toggleClass(),如果它是:
//扩展禁用功能
jQuery.fn.extend({
禁用:功能(状态){
返回此值。每个(函数(){
var$this=$(this);
if($this.is('input,button,textarea,select'))
this.disabled=状态;
其他的
$this.toggleClass('disabled',state);
});
}
});
//禁用所有:
$('input,button,a')。禁用(true);
//在所有设备上启用:
$('input,button,a')。禁用(false);
完整组合的JSFIDLE演示
值得进一步注意的是,上述函数也适用于所有输入类型