Cancel click event in the mouseup event handler

前端 未结 14 2432
梦毁少年i
梦毁少年i 2020-12-09 14:53

Writing some drag&drop code, I\'d like to cancel the click events in my mouseup handler. I figured preventing default should do the trick, but the click event is still f

14条回答
  •  萌比男神i
    2020-12-09 15:35

    It might be possible but I'm not sure if you can handle this kind of evt management with jQuery. This code example should not be far away from your expectation or at least give you a direction.

    function AddEvent(id, evt_type, ma_fonction, phase) {
        var oElt = document.getElementById(id);
        // modèle W3C mode bubbling
        if( oElt.addEventListener ) {
            oElt.addEventListener(evt_type, ma_fonction, phase);
        // modèle MSIE
        } else if( oElt.attachEvent ) {
            oElt.attachEvent('on'+evt_type, ma_fonction);
        }
        return false;
    }
    
    function DelEvent(id, evt_type, ma_fonction, phase) {
        var oElt = document.getElementById(id);
        // modèle W3C mode bubbling
        if( oElt.removeEventListener ) {
            oElt.removeEventListener(evt_type, ma_fonction, phase);
        // modèle MSIE
        } else if( oElt.detachEvent ) {
            oElt.detachEvent('on'+evt_type, ma_fonction);
        }
        return false;
    }
    
        var mon_id = 'test';
        var le_type_evt = "mouseup";
        var flux_evt = false; // prevent bubbling
        var action_du_gestionnaire = function(e) {
            alert('evt mouseup on tag 
    '); // 1ère méthode : DOM Lev 2 // W3C if ( e.target ) e.target.removeEventListener(le_type_evt, arguments.callee, flux_evt); // MSIE else if ( e.srcElement ) e.srcElement.detachEvent('on'+le_type_evt, arguments.callee); // 2ème méthode DOM Lev2 // DelEvent(mon_id, le_type_evt, action_du_gestionnaire, flux_evt); }; AddEvent(mon_id, le_type_evt, action_du_gestionnaire, flux_evt);

提交回复
热议问题