javascript - Hur man avbinder en lyssnare som anropar event.preventDefault() (med jQuery)?


jquery toggle anropar preventDefault() som standard, så standardinställningarna fungerar inte. du kan inte klicka på en kryssruta, du kan inte klicka på en länk osv

är det möjligt att återställa standardhanteraren?

Svar #1

I mitt fall:

$('#some_link').click(function(event){
    event.preventDefault();
});

$ ('#some_link').unbind('click'); fungerade som den enda metoden för att återställa standardåtgärden.

Som ses här: https://stackoverflow.com/a/1673570/211514

Svar #2

Det är ganska enkelt

Låt oss anta att du gör något som

document.ontouchmove = function(e){ e.preventDefault(); }

nu för att återställa det till den ursprungliga situationen, gör följande...

document.ontouchmove = function(e){ return true; }

Från denna webbplats.

Svar #3

Det är inte möjligt att återställa en preventDefault() men vad du kan göra är att lura den :)

<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>

Om du vill gå ett steg längre kan du till och med använda utlösarknappen för att utlösa en händelse.

Svar #4

function DoPrevent(e) {
  e.preventDefault();
  e.stopPropagation();
}

// Bind:
$(element).on('click', DoPrevent);

// UnBind:
$(element).off('click', DoPrevent);

Relaterade artiklar