JQuery href 防止锚点出现默认问题
JQuery href preventdefault issue with anchor
我有一个 link 如下。
<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。但是点击不会发生。但是,如果我在 URL 的末尾手动附加 #tab3Info
并按回车键,页面将移动到新选项卡。所以在上面的函数中,虽然改变了href,但是点击功能并没有发生。
当 JQuery 1.4.2 与 Jquery 移动版 1.1.0 一起使用时,这工作正常。 JQuery 升级到 1.9.1 且 Jquery 移动版升级到 1.3.2 时出现问题。
而不是 return true,尝试:
$(this).unbind('click');
$(this).click();
jQuery prop()
方法的使用不适用,因为它在元素中设置了 属性(在您的情况下为 #tab3Link)。但是您想操纵位置值。
而不是:
$("#tab3Link").prop("href", "#tab3Info");
您可以使用:
window.location.hash = 'tab3Info';
或:
window.location += '#tab3Info';
我有一个 link 如下。
<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。但是点击不会发生。但是,如果我在 URL 的末尾手动附加 #tab3Info
并按回车键,页面将移动到新选项卡。所以在上面的函数中,虽然改变了href,但是点击功能并没有发生。
当 JQuery 1.4.2 与 Jquery 移动版 1.1.0 一起使用时,这工作正常。 JQuery 升级到 1.9.1 且 Jquery 移动版升级到 1.3.2 时出现问题。
而不是 return true,尝试:
$(this).unbind('click');
$(this).click();
jQuery prop()
方法的使用不适用,因为它在元素中设置了 属性(在您的情况下为 #tab3Link)。但是您想操纵位置值。
而不是:
$("#tab3Link").prop("href", "#tab3Info");
您可以使用:
window.location.hash = 'tab3Info';
或:
window.location += '#tab3Info';