2012-10-22 5 views
1

У меня есть требование предотвратить пересылку ссылок в моих приложениях в новое окно/вкладку с помощью клавиш CTRL. Я теперь следующий в моей странице:NULLify CTRL нажмите ссылку на ссылку

 $(document).click(function(e) 
     { 
      if (e.ctrlKey) 
      { 
       return (false); 
      } 
     }); 

Это, кажется, работает нормально для DIV щелкает однако щелчки ссылки полностью игнорируются. Я смотрю, могу ли я сделать NULLIfy нажатием клавиши CTRL и сделать его простым нажатием. Это возможно? Какой-то форсирование ключевого кода события для ctrl только для нуля?

+0

Вы можете остановить событие и отправить новый без клавиши ctrl. –

+1

Почему вы знаете лучше, чем ваши пользователи, должны ли они открывать эту ссылку на вкладке или нет? –

+1

Как это может быть требованием? Существует так много способов открыть ссылки на новой вкладке ... –

ответ

2

Вы можете использовать:

$('a').click(function(e) { 
    if(e.ctrlKey) return false; 
}); 

Проверить это демо: http://jsfiddle.net/gTG6Q/

Примечание: Пользователь может по-прежнему правой кнопкой мыши и открыть ссылку в новой вкладке. Для предотвращения этого вам нужно будет также отменить событие contextmenu.

1

Под «документом», а также элементы, которые позже могут быть добавлены с помощью AJAX, с помощью этого простого Однострочника: - Скопируйте код

$(document).on("click", "*", function(e) { 
    if (e.ctrlKey) return false; 
}); 

Если вы версия JQuery ниже v1.7 затем используйте .live() вместо .on() (просто измените слово с «on» на «live»).

Смежные вопросы