Я хочу отключить контекстное меню по умолчанию, когда пользователь щелкает правой кнопкой мыши по полю ввода, чтобы я мог показать пользовательский контекстный режим. Вообще говоря, его довольно легко отключить в меню правой кнопкой мыши, делая что-то вроде:jQuery: preventDefault() не работает над событиями ввода/клика?
$([whatever]).bind("click", function(e) { e.preventDefault(); });
И в самом деле, я могу сделать это на почти каждый элемент КРОМЕ для полей ввода в FF - Кто-нибудь знает, почему и мог укажите мне какую-то документацию?
Вот соответствующий код, с которым я работаю, спасибо, ребята.
HTML:
<script type="text/javascript">
var r = new RightClickTool();
</script>
<div id="main">
<input type="text" class="listen rightClick" value="0" />
</div>
JS:
function RightClickTool(){
var _this = this;
var _items = ".rightClick";
$(document).ready(function() { _this.init(); });
this.init = function() {
_this.setListeners();
}
this.setListeners = function() {
$(_items).click(function(e) {
var webKit = !$.browser.msie && e.button == 0;
var ie = $.browser.msie && e.button == 1;
if(webKit||ie)
{
// Left mouse...do something()
} else if(e.button == 2) {
e.preventDefault();
// Right mouse...do something else();
}
});
}
} // Ends Class
EDIT:
К сожалению, после прочтения комментариев я понимаю, что я должен прояснить несколько вещей.
1) Код выше действительно работает ... в некотором смысле. Код может сортировать по какой кнопке щелкнул, мне все равно, что я говорю e.preventDefault(), и появляется меню правой кнопки мыши. Другими словами, если вы ставите предупреждение на e.button, вы получите свой 1 или 0 для левой и 2 для правой ... но он просто смеется надо мной и все еще показывает чертовски меню по умолчанию!
2) Если я поставил селектор jQuery на любой другой элемент (кроме ввода), тогда все будет работать, FF будет уважать вызов preventDefault(), а меню по умолчанию правой кнопкой мыши не будет отображаться.
Как насчет просто 'return false'? –
Кроме того, попробуйте 'e.which' вместо' e.button'. – karim79
Может быть связано http://stackoverflow.com/questions/1489817/jquery-liveclick-firing-for-right-click – scott