JQuery preventDefualt无法处理由AJAX元素动态创建的
出于某种原因,JQuery preventDefualt无法处理由AJAX元素动态创建的,jquery,preventdefault,Jquery,Preventdefault,出于某种原因,event.preventDefault()不适用于以下代码: $(document).on('click', '.product-crosssells a', function (event) { event.preventDefault(); // multiple chunks of code return false; }); 奇怪的是运行了多个代码块。因此,文档单击肯定会被拾取。但出于某种原因,违约并没有起作用 在成功的ajax调用之后,使用
event.preventDefault()代码>不适用于以下代码:
$(document).on('click', '.product-crosssells a', function (event) {
event.preventDefault();
// multiple chunks of code
return false;
});
奇怪的是运行了多个代码块。因此,文档单击肯定会被拾取。但出于某种原因,违约并没有起作用
在成功的ajax调用之后,使用.after()
注入代码
&该链接如下所示https://www.example.org/?add-到购物车=262“
恢复到
$('.product crosssells a')。在(“单击”上,函数(事件){
,而不动态插入它可以正常工作。我刚刚意识到我自己的愚蠢错误
我正在使用ajax调用
获取数据,然后在之后插入。因此,我应该将事件绑定到主体
,而不是文档
$('body').on('click', '.product-crosssells a', function (event) {
event.preventDefault();
// multiple chunks of code
return false;
});
event.preventDefault()
不会停止多个区块的运行。它只会阻止打开您的产品交叉销售的链接。
指向的链接。请使用演示问题的示例更新您的问题,最好是使用堆栈片段运行的问题(《代码》[]
工具栏按钮;)@AnuragSrivastava很清楚,…@T.J.Crowder你知道链接在那些环境中无论如何都不起作用吗?@DCdaz-Drat,我编辑了自动注释的堆栈片段部分,但后来又认为如果你有target
,你是可以的,但不是在堆栈片段中(它们被完全锁定了),非常正确。因此,在问题中加入MCVE的方法是将代码放入问题中,然后(可选)通过一个实例链接到某个环境。这根本不会有任何区别。@t.J.Crowder当然有。我会在今天晚些时候补充一个详细的解释,解释为什么会有这种情况。除非有一些不明显的因素,否则preventDefault是否会阻止链接的默认操作没有任何区别。这不是基于意见的事情.这是基于事实的。你问题和答案中的事实并不支持你的主张。现在,如果你遗漏了事实,那么,除了你之外,任何人都不能做这件事。