工作中遇到这种情况:验证邮箱页面的重新发送需要在3分钟后才可以点击重新发送,所以在这之前需要禁用他的点击
网上查了后有一下几种实现方法
1.CSS禁用鼠标点击事件
.disabled { pointer-events: none; }
注:(这个没有试过)
01 | $(document).ready( function () { |
02 | $( "a" ).each( function () { |
03 | var textValue = $( this ).html(); |
04 | if (textValue == "XX概况" || textValue == "服务导航" ) { |
05 | $( this ).css( "cursor" , "default" ); |
06 | $( this ).attr( 'href' , '#' ); //修改<a>的 href属性值为 # 这样状态栏不会显示链接地址 |
07 | $( this ).click( function (event) { |
08 | event.PReventDefault(); // 如果<a>定义了 target="_blank“ 需要这句来阻止打开新页面 |
09 | }); |
10 | } |
11 | }); |
12 | }); |
1 | $( function (){ |
2 | $( '.disableCss' ).removeAttr( 'href' ); //去掉a标签中的href属性 |
3 | $( '.disableCss' ).removeAttr( 'onclick' ); //去掉a标签中的onclick事件 |
4 | }); |
控制按钮为禁用:
1 | $( '#button' ).attr( 'disabled' , "true" );添加disabled属性 |
2 | $( '#button' ).removeAttr( "disabled" ); 移除disabled属性 |
live() 方法为被选元素附加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。
通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)。
问题:使用jQuery的live()方法绑定事件,有时会出现重复绑定的情况,如,当点击一个按钮时,此按钮所绑定的事件会并执行n遍。
解决:使用die()方法,在live()方法绑定前,将此元素上的前面被绑定的事件统统解除,然后再通过live()方法绑定新的事件。
Js代码
//先通过die()方法解除,再通过live()绑定
$("#selectAll").die().live("click",function(){
//事件运行代码
});
//先通过die()方法解除,再通过live()绑定
$("#selectAll").die().live("click",function(){
//事件运行代码
});die()方法简介:
新闻热点
疑难解答