2015-08-28 65 views
1

我有一個鏈接如下。JQuery href防止默認問題與錨點

<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 mobile 1.1.0一起使用時,這工作正常。 JQuery升級到1.9.1並且Jquery mobile升級到1.3.2時會出現問題。

回答

1

而是真正的回報的,請嘗試:jQuery的prop()方法

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

工作就像一個魅力。謝謝... –

2

使用並不適用,因爲它設置元素的屬性(在你的情況#tab3Link)。但是你想操縱位置值。

相反的:

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

您可以使用:

window.location.hash = 'tab3Info'; 

或:

window.location += '#tab3Info'; 
+0

在previos版本的代碼中,$(「#tab3Link」)。attr(「href」,「#tab3Info」);正在使用。它沒有與我在問題中提到的jquery升級一起工作。這就是爲什麼我用prop替換attr。它仍然沒有工作。 siracoj的答案奏效了。我也會嘗試這個。 –