【问题标题】:jQuery how to enable a tag after preventDefault()jQuery如何在preventDefault()之后启用标签
【发布时间】:2017-10-24 02:39:18
【问题描述】:

我已经停止了一个链接/锚标记触发事件,当它使用preventDefault() 和在jQuery 函数的中间单击时,我想通过禁用preventDefault() 来触发链接。下面你可以看到我的代码块,

jQuery(".tcf_add_to_cart a").on('click', function( e ){
e.preventDefault();
if( some condition )
{
    $.ajax({
        type : "POST",
        data : data,
        url : 'url',
        success : function( response ) {
            if ( response == 'true' )
            {
                // ENABLE THE LINK AND TRIGGER LINK ACTION                         
            }
        }
    });
}
});

如上所述,我需要启用被阻止的链接,以及执行此操作的最佳和正确方法是什么。

【问题讨论】:

  • 所以你希望它跟随 if 中的链接?
  • 是的,我想点击链接
  • 这是一个很好的回答你的问题:stackoverflow.com/a/24319183/5112247,想法是使用window.location =(锚的原始href)

标签: javascript php jquery html


【解决方案1】:

您可以根据事件目标设置位置。

if ( response == 'true' ) {
  window.location.href = e.target.href
}

您无法取消 preventDefault,因为调用是异步的。

【讨论】:

  • 而不是e.target.href,我将值分配给变量var to_page = $(this).attr('href');,然后像window.location.href = to_page;一样使用它
【解决方案2】:

创建一个隐藏链接,当您到达您希望它导航的位置时,使用该隐藏链接和点击事件...

<a href="http://www.yourLink.com">click me</a><a href="http://www.yourLink.com" id="yourLink">&nbsp;</a>

然后在你的代码中添加:

$("#yourLink").click();

触发它。

另外,您可以隐藏链接,例如:$("#yourLink").hide();

【讨论】:

  • 是的,这就是工作。不是纯粹的 JS 解决方案,而是解决问题的好方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-04
  • 1970-01-01
  • 1970-01-01
  • 2012-12-10
  • 2023-03-26
相关资源
最近更新 更多