$('body').on('click', '.ed', function (){
}
$('body').on('rightClick', '.ed', function (){
}
(function(fn) {
var $$ = $(document);
var mousedown = 'mousedown', mouseup = 'mouseup';
function noMenu() { return false; }
function handler(callback) {
return function(e) {
if (e.which === 3) { callback.call(this, e); }
if (e.type === mousedown) { $$.one('contextmenu', noMenu); }
};
};
fn.rightClick = function rightClick(callback) {
return this.rightMousedown(function() {
$(this).one(mouseup, handler(callback));
});
};
fn.rightMousedown = function rightMousedown(callback) {
return this[mousedown](handler(callback));
};
fn.rightMouseup = function rightMouseup(callback) {
return this[mouseup](handler(callback));
};
})(jQuery.fn);
// Определяем спец. событие `rightclick`
$.event.special.rightclick = {
bindType: "mousedown",
delegateType: "mousedown",
handle: function (evt) {
if (evt.button === 2) {
var handleObj = evt.handleObj;
$(document).one('contextmenu', false);
evt.type = handleObj.origType;
ret = handleObj.handler.apply(this, arguments);
evt.type = handleObj.type;
return ret;
}
}
};
// Пример использования
$('.right').on({
'rightclick': function () {
$(this).addClass('pressed');
},
'mouseup': function () {
$(this).removeClass('pressed');
}
});
$(document).ready(function(){
document.oncontextmenu = function() {return false;}; //отключить выпадающее меню
$(document).mousedown(function(e){
if( e.button == 2 ) { //2 - правый клик, 3 - средний клик
alert('Right mouse button!');
return false;
}
return true;
});
});