2014-09-04 3 views
1

Возможно ли, что я могу назначить функцию обратного вызова для правого щелчка, когда отключу контекстное меню?Назначить обратный вызов jQuery Щелкните правой кнопкой мыши, когда контекстное меню отключено

FIDDLE

$('div').on('contextmenu', function (e) { 
    e.preventDefault(); 
    return false; 
}); 

$('label').on('click', function (e) { 
    var btn = e.button; 
    if (btn == 2) { 
     alert(1); 
    } else { 
     return false; 
    } 
}); 

ответ

2

это было бы гораздо более удобный способ сделать это: DEMO

$('div').on('contextmenu', function (e) { 
    if(!$(this).children('label').is(e.target)){ 
     e.preventDefault(); 
     return false; 
    } 
}); 

$('label').on('contextmenu', function (e) { 
    alert(1); 
    e.preventDefault(); 
    return false; 
}); 
+0

спасибо. у вас появилась идея: D – Vainglory07

1

Вы почти там. Событие contextmenu срабатывает при щелчке правой кнопкой мыши. Поэтому в этом обработчике вы должны делать то, что хотите, а затем e.preventDefault().

$('div').on('contextmenu', function (e) { 
    var btn = e.button; 
    if (btn == 2) { 
     alert(1); 
    } else { 
     return false; 
    } 

    e.preventDefault(); 
    return false; 
});