2012-09-25 28 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