首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在选中复选框之前禁用jQuery OnClick事件?

在选中复选框之前禁用jQuery OnClick事件?
EN

Stack Overflow用户
提问于 2016-02-02 14:28:50
回答 4查看 1K关注 0票数 3

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

阿雷夫

代码语言:javascript
复制
<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>

jQuery

代码语言:javascript
复制
// bind the click-handler:
$(".price_link").click(function(e){
    // prevent the default action of clicking on a link:
    e.preventDefault();
    // if the element with id 'check' is checked:
    if (document.getElementById('check').checked){
        // change the window.location to the 'href' of the clicked-link:
        window.location = this.href;
    }
});
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-02-02 14:43:55

下面是一个类似问题的答案:Disable link using css

概括地说:

你可以有个CSS规则

代码语言:javascript
复制
 .not-active {
   pointer-events: none;
   cursor: default;
}

并将类.not-active添加到HTML中的适当links中。然后您可以在您的change上侦听checkbox (重要的不是toggle,而是addremove类,因为有些浏览器缓存输入):

代码语言:javascript
复制
$('#yourCheckboxId').on('change', function () {
    if ($(this).prop('checked') === true) {
        $('.price-link').removeClass('not-active');
    } else {
        $('.price-link').addClass('not-active');
    }
});

如果无法在HTML中添加class,则可以用span包围link并将类应用于此,也可以在页面加载时将class应用于link

代码语言:javascript
复制
$(function() {
    $('.price-link').addClass('not-active');
});
票数 3
EN

Stack Overflow用户

发布于 2016-02-02 14:39:07

测试是否选中了复选框($('#checkbox').prop("checked"))并作出相应反应:

代码语言:javascript
复制
$('.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
});
票数 1
EN

Stack Overflow用户

发布于 2016-02-02 14:35:22

那这个呢?

代码语言:javascript
复制
$(".price_link").click(function(e){
    if (document.getElementById('check').checked){
        window.location = this.href;
    } else {
        e.preventDefault();
    }
});

还是这个?

代码语言:javascript
复制
$(".price_link").click(function(e){
    if (!document.getElementById('check').checked){
        e.preventDefault();
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35156116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档