2012-09-25 85 views
0

叫我有一個HTML文件 -window.location的js函數內部通過的onclick

<a href="#abc" onclick="return somefunc()">Click</a> 

的js文件 -

function somefunc() { 
    if(somecondition) { 
    //do domething 
    } 
    else { 
     window.location='#xyz'; 
     return false; 
    } 

如果其他條件被觸發,它需要我#xyz然後再回到#abc。當其他部分發生時,我想重定向到#xyz

+0

我也試過。不工作。 –

+0

刪除'return false;'並重試。如果可能是原因。 – Patriks

+0

@Patriks如果這應該有任何工作的希望,那麼''return false'必須留在,因爲它阻止了鏈接的默認動作以支持客戶端重定向。問題在於別處。 – PointedEars

回答

0

您不應該讓它返回false,因爲這將取消默認操作。儘管你可能希望在你的「做某事」區域包含一個返回false。

+0

需要返回false取消默認操作,他想要轉到#xyz而不是abc –

+0

默認操作是轉到他不想*的'#abc'。其實,這可能是問題所在。 –

+0

當我在else部分內時,我不想要默認操作。我想重定向到#xyz而不是#abc在else部分。 –

0

代碼工作正常,我喜歡這個

HTML

<input type="checkbox" id="cb" /> 
<a href="#abc" onclick="return somefunc()">Click</a> 

<div class="filler"></div> 
<div id="abc">ABC location</div> 
<div class="filler"></div> 
<div class="filler"></div> 
<div class="filler"></div> 
<div id="xyz">XYZ location</div> 
<div class="filler"></div> 
<div class="filler"></div> 
<div class="filler"></div> 

的JavaScript

function somefunc() { 

    var returnState = true; 
    if (document.getElementById("cb").checked) { 
     alert("here"); 
    } else { 
     window.location.hash = "#xyz"; 
     returnState = false;     
    } 
    return returnState; 

}​ 

運行實例

JSFiddle