Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在js/jquery中禁用对同一类的所有链接的右键单击?_Javascript_Jquery_Ruby On Rails 4 - Fatal编程技术网

Javascript 如何在js/jquery中禁用对同一类的所有链接的右键单击?

Javascript 如何在js/jquery中禁用对同一类的所有链接的右键单击?,javascript,jquery,ruby-on-rails-4,Javascript,Jquery,Ruby On Rails 4,Rails 4+JS+jquery 如何禁用使用同一类的链接的右键单击 <% @schedule_hash.values.each do |schedule| %> <%= link_to "Cancellation policy", {:controller => 'web', :action => 'get_cancellation_policies', :operator_id => schedule["bus_schedules"].oper

Rails 4+JS+jquery

如何禁用使用同一类的链接的右键单击

<% @schedule_hash.values.each do |schedule| %>
     <%= link_to "Cancellation policy", {:controller => 'web', :action => 'get_cancellation_policies', :operator_id => schedule["bus_schedules"].operator_id}, :onclick => "", :class => "canc_policy", :id => "canc_policy#{schedule["bus_schedules"].operator_id}", :remote => true %>
<% end %>

“web”、:action=>“get_cancellation_Policys”、:operator_id=>schedule[“bus_schedules”].operator_id}、:onclick=>”、:class=>“canc_policy”、:id=>“canc_policy”{schedule[“bus_schedules”].operator_id}、:remote=>true%>
假设@schedule_hash.count=7,那么7次链接将使用相同的类名

所以我使用这个脚本

<script type="text/javascript">
$(document).ready(function(){
  document.getElementsByClassName('canc_policy')[0].oncontextmenu = new Function ("return false");
});

$(document).ready(function()
{
  $('.canc_policy').bind('click', function(e) 
  {
    if (e.metaKey || e.ctrlKey )
    {
      e.metaKey = e.ctrlKey;
      return false;
    }
})

$(".canc_policy").mousedown(function(e) {
   if( e.which == 2 ) {
    alert("New Tab is not Allowed.");
    return false;
   }
});
});
</script>

$(文档).ready(函数(){
document.getElementsByClassName('canc_policy')[0]。oncontextmenu=新函数(“返回false”);
});
$(文档).ready(函数()
{
$('.canc_policy').bind('click',函数(e)
{
if(e.metaKey | | e.ctrlKey)
{
e、 metaKey=e.ctrlKey;
返回false;
}
})
$(“.canc_policy”).mousedown(函数(e){
如果(e.which==2){
警报(“不允许使用新选项卡”);
返回false;
}
});
});
但此脚本仅适用于第一个链接其余6个链接右键单击正在工作。 在不创建唯一类的情况下,是否有任何方法可以禁用同一类的所有链接…

您可以执行以下操作:

$(document).ready(function(){
    $(".canc_policy").bind("contextmenu",function(){
        return false;
    });
}); 
document.getElementsByClassName('canc_policy')[0]
只选择具有
canc_policy
类的第一个元素,因此只有右键单击的第一个链接被禁用,您可以执行以下操作:

$(document).ready(function(){
    $(".canc_policy").bind("contextmenu",function(){
        return false;
    });
}); 
    $(document).ready(function () {
        var elements = document.getElementsByClassName('canc_policy');
        for (var i = 0; i < elements.length; i++) {
            elements[i].addEventListener('contextmenu', function (e) { e.preventDefault(); }, false);
        }
    });
document.getElementsByClassName('canc_policy')[0]
只选择具有
canc_policy
类的第一个元素,因此右键单击(
).ready(函数(){
    $(document).ready(function () {
        var elements = document.getElementsByClassName('canc_policy');
        for (var i = 0; i < elements.length; i++) {
            elements[i].addEventListener('contextmenu', function (e) { e.preventDefault(); }, false);
        }
    });
var elements=document.getElementsByClassName('canc_policy'); 对于(var i=0;i
$(文档).就绪(函数(){
var elements=document.getElementsByClassName('canc_policy');
对于(var i=0;i
我得问问。。。为什么会有人想这样做?因为所有这些链接都是AJAX调用。如果有人将右键点击链接并在新标签中打开,那么它将崩溃…这就是我正在考虑禁用右键点击链接…如果有任何其他解决方案,请共享…我要问。。。为什么会有人想这样做?因为所有这些链接都是AJAX调用。如果有人将右键点击链接并在新标签中打开,那么它将崩溃…这就是我正在考虑禁用右键点击链接…如果有任何其他解决方案,请共享。。。