How to prevent a link inside a label from triggering a checkbox?

前端 未结 8 1517
难免孤独
难免孤独 2021-01-03 18:41

I have this label:

8条回答
  •  再見小時候
    2021-01-03 19:11

    You should just need to bind an event to the link that calls event.stopPropagation() and event.preventDefault()

    JQuery for all links in labels:

    $(document).on("tap click", 'label a', function( event, data ){
        event.stopPropagation();
        event.preventDefault();
        window.open($(this).attr('href'), $(this).attr('target'));
        return false;
    });
    

    Pure javascript (you need to set an id on the link you want to follow)

    var termLink = document.getElementById('termLink');
    var termClickHandler = function(event) {
        event.stopPropagation();    
        event.preventDefault();
        window.open(termLink.href, termLink.target);
        return false;
    };
    termLink.addEventListener('click', termClickHandler);
    termLink.addEventListener('touchstart', termClickHandler);
    

    These expect the link target to be set to _self or _blank to open in the same window or a new window respectively.

提交回复
热议问题