Javascript 在选中复选框之前是否禁用jQuery OnClick事件?
我在这里似乎遇到了一些问题,因为我发现了一些允许我禁用HREF的东西,但它们被jQuery OnClick覆盖,这意味着它们仍然可以单击?我目前的代码如下,但基本上我使用一个短代码来拉下面的ahref,我需要禁用所有的链接,直到勾选复选框,有人能帮我吗 ahrefJavascript 在选中复选框之前是否禁用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
<a class="price_link" href="javascript:void();" onclick="window.open('https://bookings.pontins.com/sraep/www700.pgm?LINKID=700&aid=&offer=DSTC&url=https://bookings.pontins.com/sraep/&cater=SC&centre=BRE&Nights=3&startdate=12022016&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');
});