JQuery href阻止了锚点的默认问题

时间:2015-08-28 01:58:40

标签: javascript jquery jquery-mobile href preventdefault

我的链接如下。

<a href="#" id="tab3Link">Tab 3</a>

在标签2上,单击标签3 时,我想首先验证标签2中的表单是否已正确填写。

    $("#tab3Link").click(function(e){
        e.preventDefault();
        $("#tab3Link").prop("href", "#");
            if(validateTab2()){
                $("#tab3Link").prop("href", "#tab3Info");
                return true;
            }else{
                return false;
            }
    });  

#tab3Info锚点应该将页面转换为新的div。但点击不会发生。但是,如果我手动将#tab3Info附加到URL的末尾并按Enter键,则页面将移至新选项卡。所以在上面的函数中,虽然改变了href,但是不会发生click函数。

当JQuery 1.4.2与Jquery mobile 1.1.0一起使用时,这工作正常。当JQuery升级到1.9.1并且Jquery移动到1.3.2时出现问题。

2 个答案:

答案 0 :(得分:2)

jQuery prop()方法的使用不适用,因为它在元素中设置属性(在您的情况下为#tab3Link)。但是你想要操纵位置值。

而不是:

$("#tab3Link").prop("href", "#tab3Info");

您可以使用:

window.location.hash  = 'tab3Info';

或:

window.location += '#tab3Info';

答案 1 :(得分:1)

而不是返回true,请尝试:

    $(this).unbind('click');
    $(this).click();