Javascript 如果html元素具有类,则避免链接访问
我有一个HTML元素作为文章的购买链接。当这篇文章是soldout时,这个链接得到class=售罄。当有人单击该链接时,它将打开一个jQuery maginific弹出窗口,其中包含签出表单。但是当我想要的课程卖完后,这个链接就不能点击了。为了实现这一联系,我遇到了一些问题 我的HTML: 发生了什么: 事实上,它避免了ajax弹出窗口,但在本例中,它仍然遵循HTML元素的链接,但它不应该做任何事情。怎么了?您还需要添加e.stopPropagation以防止点击触发 您只是在侦听mousedown事件,但是元素上也会触发一个click事件,默认情况下,标签的click事件将跟随href属性 我很好奇为什么要绑定mousedown事件而不是click事件?如果更改为click事件,我相信e.preventDefault将直接处理此问题。您还需要添加e.stopPropagation以防止单击触发 您只是在侦听mousedown事件,但是元素上也会触发一个click事件,默认情况下,标签的click事件将跟随href属性Javascript 如果html元素具有类,则避免链接访问,javascript,jquery,html,magnific-popup,Javascript,Jquery,Html,Magnific Popup,我有一个HTML元素作为文章的购买链接。当这篇文章是soldout时,这个链接得到class=售罄。当有人单击该链接时,它将打开一个jQuery maginific弹出窗口,其中包含签出表单。但是当我想要的课程卖完后,这个链接就不能点击了。为了实现这一联系,我遇到了一些问题 我的HTML: 发生了什么: 事实上,它避免了ajax弹出窗口,但在本例中,它仍然遵循HTML元素的链接,但它不应该做任何事情。怎么了?您还需要添加e.stopPropagation以防止点击触发 您只是在侦听mousedo
我很好奇为什么要绑定mousedown事件而不是click事件?如果更改为click事件,我相信e.preventDefault将直接处理此问题。在preventDefault之后添加StopperProgation对我不起作用,但将mousedown更改为click对我起作用。谢谢你的解释。我会记住这一点:。我可以在8分钟内接受这个答案-你已经很快了:PstopPropagation会起作用的。我认为您拼写Propogation的方式有误,但是是的,使用click更好。在preventDefault之后添加StopperPogation对我不起作用,但将mousedown更改为click对我起作用。谢谢你的解释。我会记住这一点:。我可以在8分钟内接受这个答案-你已经很快了:PstopPropagation会起作用的。我认为你拼写Propogation的方式有误,但是是的,使用click更好。
<a href="checkout.php" class="btn-1 ajax-popup sold-out">Purchase</a>
$('.ajax-popup').mousedown(function(e){
e.preventDefault();
if($(this).hasClass("sold-out")) {
return false;
}
var region = $(this).data('region');
var quantity = $(this).data('quantity');
if(typeof quantity == 'undefined') quantity = $(this).parent().find('select').val();
var packageid = $(this).data('packageid');
$(this).magnificPopup({
type: 'ajax',
ajax: {
settings: {
data : {
region : region,
quantity : quantity,
packageid : packageid,
}
}
},
closeOnContentClick: false,
closeOnBgClick: false
});
});