Javascript 在选中复选框之前是否禁用jQuery OnClick事件?

Javascript 在选中复选框之前是否禁用jQuery OnClick事件?,javascript,jquery,html,Javascript,Jquery,Html,我在这里似乎遇到了一些问题,因为我发现了一些允许我禁用HREF的东西,但它们被jQuery OnClick覆盖,这意味着它们仍然可以单击?我目前的代码如下,但基本上我使用一个短代码来拉下面的ahref,我需要禁用所有的链接,直到勾选复选框,有人能帮我吗 ahref <a class="price_link" href="javascript:void();" onclick="window.open('https://bookings.pontins.com/sraep/www700.pg

我在这里似乎遇到了一些问题,因为我发现了一些允许我禁用HREF的东西,但它们被jQuery OnClick覆盖,这意味着它们仍然可以单击?我目前的代码如下,但基本上我使用一个短代码来拉下面的ahref,我需要禁用所有的链接,直到勾选复选框,有人能帮我吗

ahref

<a class="price_link" href="javascript:void();" onclick="window.open('https://bookings.pontins.com/sraep/www700.pgm?LINKID=700&amp;aid=&amp;offer=DSTC&amp;url=https://bookings.pontins.com/sraep/&amp;cater=SC&amp;centre=BRE&amp;Nights=3&amp;startdate=12022016&amp;apartment=Popular','Book','location=no,scrollbars=yes,width=750,height=900')">£60</a>
这个怎么样

$(".price_link").click(function(e){
    if (document.getElementById('check').checked){
        window.location = this.href;
    } else {
        e.preventDefault();
    }
});
还是这个

$(".price_link").click(function(e){
    if (!document.getElementById('check').checked){
        e.preventDefault();
    }
});

测试您的复选框是否已选中(
$(“#复选框”).prop(“已选中”)
),并做出相应反应:

$('.price_link').click(function(){
  if ($('#yourCheckboxId').prop("checked") != true)
    return; //do nothing if your checkbox isn't chekced

  //do what you want to do if your checkbox is checked here
});

下面是一个类似问题的答案:

总结如下:

你可以有一个CSS规则

 .not-active {
   pointer-events: none;
   cursor: default;
}
并将类
.not active
添加到HTML中适当的
链接中。
然后,您可以在
复选框中侦听
更改
(重要的是不要
切换
,而是
添加
删除
,因为某些浏览器缓存输入):

如果无法在HTML中添加
,则可以在
链接
周围添加
span
并将该类应用于该类,或者在页面加载时将
应用于
链接

$(function() {
    $('.price-link').addClass('not-active');
});

在所有链接中添加一个类
。非活动
,并使用规则禁用它们。然后使用一个简单的
.click()
函数测试复选框是否已选中,并相应地删除/添加
.not active

$('#checkboxId')。单击(函数(){
if($('#checkboxId').prop('checked')==true){
$('price_link').removeClass('not-active');
}否则{
$('.price_link').addClass('not-active');
}
});
。未激活{
指针事件:无;
游标:默认值;
}
是否激活所有链接



您也可以粘贴HTML代码吗。或者输入jsfiddle我们可以通过复选框查看您的DOM吗?您可以尝试以下操作:
$(“.price\u link”)。关闭(“click”)。单击(函数(e){
$(“.price\u link”)。删除TTR(“onclick”)。单击(函数(e){
使用plugin并在复选框中添加更改事件以添加/删除事件。我在if上添加了
!=true
,以强调道具返回布尔值。我刚刚尝试了这一点,但链接仍然为我点击:(@StuartPontins从链接中删除onclick,添加窗口。在单击手柄内打开谢谢!我刚刚尝试了这个方法,它可以工作,除了我必须勾选框以禁用它们之外,我如何才能翻转它?很高兴提供帮助:)-在你的HTML中,你必须将类
非活动的
添加到所有带有类
价格链接的链接中(因此它可能看起来像这样:
)啊,我明白你的意思了-我可以把它包装在这里吗?因为我们不能直接将类添加到类似于[pricex oc=“DSTC”y=“2016”m=“02”的短代码中d=“15”pk=“Brean Sands”nts=“4”cat=“SC”]?例如,我是否可以在其周围使用一个span,并将类添加到该span中?是的,如果规则应用于其周围的
span
,则将禁用
链接。
$('#yourCheckboxId').on('change', function () {
    if ($(this).prop('checked') === true) {
        $('.price-link').removeClass('not-active');
    } else {
        $('.price-link').addClass('not-active');
    }
});
$(function() {
    $('.price-link').addClass('not-active');
});