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 %>
假设@ 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>
但是此脚本仅适用于第一个链接其余6个链接右键单击正常。 有没有办法没有制作独特的课程,我们可以禁用右键单击所有相同类别的链接...
答案 0 :(得分:4)
$(document).ready(function(){
$(".canc_policy").bind("contextmenu",function(){
return false;
});
});
document.getElementsByClassName('canc_policy')[0]
仅选择具有canc_policy
类的第一个元素,因此只有第一个链接被禁用以进行右键单击
答案 1 :(得分:0)
$(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);
}
});