jquery 切换默认调用 preventDefault(),所以默认值不起作用。你不能点击一个复选框,你不能点击一个链接等等
是否可以恢复默认处理程序?
jquery 切换默认调用 preventDefault(),所以默认值不起作用。你不能点击一个复选框,你不能点击一个链接等等
是否可以恢复默认处理程序?
就我而言:
$('#some_link').click(function(event){
    event.preventDefault();
});
$('#some_link').unbind('click'); 作为恢复默认操作的唯一方法。
它相当简单
让我们假设你做类似的事情
document.ontouchmove = function(e){ e.preventDefault(); }
现在要将其恢复到原始状态,请执行以下操作...
document.ontouchmove = function(e){ return true; }
从这个网站。
恢复 a 是不可能的,preventDefault()但你可以做的是欺骗它:)
<div id="t1">Toggle</div>
<script type="javascript">
$('#t1').click(function (e){
   if($(this).hasClass('prevented')){
       e.preventDefault();
       $(this).removeClass('prevented');
   }else{
       $(this).addClass('prevented');
   }
});
</script>
如果您想更进一步,您甚至可以使用触发按钮来触发事件。
function DoPrevent(e) {
  e.preventDefault();
  e.stopPropagation();
}
// Bind:
$(element).on('click', DoPrevent);
// UnBind:
$(element).off('click', DoPrevent);
在某些情况下*您最初可以return false代替e.preventDefault(),然后当您想将默认值恢复为return true.
*意思是当你不介意事件冒泡并且你不使用e.stopPropagation()与e.preventDefault() 
另见类似问题(也在堆栈溢出中)
或者在复选框的情况下,您可以使用以下内容:
$(element).toggle(function(){
  $(":checkbox").attr('disabled', true);
  },
function(){
   $(":checkbox").removeAttr('disabled');
})