117 lines
2.4 KiB
JavaScript
117 lines
2.4 KiB
JavaScript
|
// jQuery Right-Click Plugin
|
||
|
//
|
||
|
// Version 1.01
|
||
|
//
|
||
|
// Cory S.N. LaViska
|
||
|
// A Beautiful Site (http://abeautifulsite.net/)
|
||
|
// 20 December 2008
|
||
|
//
|
||
|
// Visit http://abeautifulsite.net/notebook/68 for more information
|
||
|
//
|
||
|
// Usage:
|
||
|
//
|
||
|
// // Capture right click
|
||
|
// $("#selector").rightClick( function(e) {
|
||
|
// // Do something
|
||
|
// });
|
||
|
//
|
||
|
// // Capture right mouse down
|
||
|
// $("#selector").rightMouseDown( function(e) {
|
||
|
// // Do something
|
||
|
// });
|
||
|
//
|
||
|
// // Capture right mouseup
|
||
|
// $("#selector").rightMouseUp( function(e) {
|
||
|
// // Do something
|
||
|
// });
|
||
|
//
|
||
|
// // Disable context menu on an element
|
||
|
// $("#selector").noContext();
|
||
|
//
|
||
|
// History:
|
||
|
//
|
||
|
// 1.01 - Updated (20 December 2008)
|
||
|
// - References to 'this' now work the same way as other jQuery plugins, thus
|
||
|
// the el parameter has been deprecated. Use this or $(this) instead
|
||
|
// - The mouse event is now passed to the callback function
|
||
|
// - Changed license to GNU GPL
|
||
|
//
|
||
|
// 1.00 - Released (13 May 2008)
|
||
|
//
|
||
|
// License:
|
||
|
//
|
||
|
// This plugin is dual-licensed under the GNU General Public License and the MIT License
|
||
|
// and is copyright 2008 A Beautiful Site, LLC.
|
||
|
//
|
||
|
if(jQuery) (function(){
|
||
|
|
||
|
$.extend($.fn, {
|
||
|
|
||
|
rightClick: function(handler) {
|
||
|
$(this).each( function() {
|
||
|
$(this).mousedown( function(e) {
|
||
|
var evt = e;
|
||
|
$(this).mouseup( function() {
|
||
|
$(this).unbind('mouseup');
|
||
|
if( evt.button == 2 ) {
|
||
|
handler.call( $(this), evt );
|
||
|
return false;
|
||
|
} else {
|
||
|
return true;
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
$(this)[0].oncontextmenu = function() {
|
||
|
return false;
|
||
|
}
|
||
|
});
|
||
|
return $(this);
|
||
|
},
|
||
|
|
||
|
rightMouseDown: function(handler) {
|
||
|
$(this).each( function() {
|
||
|
$(this).mousedown( function(e) {
|
||
|
if( e.button == 2 ) {
|
||
|
handler.call( $(this), e );
|
||
|
return false;
|
||
|
} else {
|
||
|
return true;
|
||
|
}
|
||
|
});
|
||
|
$(this)[0].oncontextmenu = function() {
|
||
|
return false;
|
||
|
}
|
||
|
});
|
||
|
return $(this);
|
||
|
},
|
||
|
|
||
|
rightMouseUp: function(handler) {
|
||
|
$(this).each( function() {
|
||
|
$(this).mouseup( function(e) {
|
||
|
if( e.button == 2 ) {
|
||
|
handler.call( $(this), e );
|
||
|
return false;
|
||
|
} else {
|
||
|
return true;
|
||
|
}
|
||
|
});
|
||
|
$(this)[0].oncontextmenu = function() {
|
||
|
return false;
|
||
|
}
|
||
|
});
|
||
|
return $(this);
|
||
|
},
|
||
|
|
||
|
noContext: function() {
|
||
|
$(this).each( function() {
|
||
|
$(this)[0].oncontextmenu = function() {
|
||
|
return false;
|
||
|
}
|
||
|
});
|
||
|
return $(this);
|
||
|
}
|
||
|
|
||
|
});
|
||
|
|
||
|
})(jQuery);
|