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

use*_*578 0 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"].operator_id}, :onclick => "", :class => "canc_policy", :id => "canc_policy#{schedule["bus_schedules"].operator_id}", :remote => true %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

假设@ 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>
Run Code Online (Sandbox Code Playgroud)

但是此脚本仅适用于第一个链接,其余6个链接均在单击正常。有什么办法可以不创建唯一的类,我们可以禁止右键单击所有具有相同类的链接...

Sud*_*oti 5

你可以做:

$(document).ready(function(){
    $(".canc_policy").bind("contextmenu",function(){
        return false;
    });
}); 
Run Code Online (Sandbox Code Playgroud)

document.getElementsByClassName('canc_policy')[0]仅选择具有canc_policy类的第一个元素,因此,右键单击仅禁用了第一个链接