2014-02-14 73 views
1

我有一个显示/隐藏div脚本,当用户单击以显示div时也会记录信息。日志工作正常,div显示/隐藏,但只有第二次点击,它没有用于在我添加日志功能之前做到这一点。 我是一个完整的JS/JQuery noob,请解释我出错的地方!JQuery需要点击两次才能启动脚本

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
<script type="text/javascript"> 
function showAnswer(whichLayer,id,lang){ 
    var whichLayer, id, lang; 
    if(document.getElementById(whichLayer).style.display =="none"){ 
    document.getElementById(whichLayer).style.display = "block"; 
    $.post("../../logclick.php", {id: id, lang: lang}); 
    }else{ 
    document.getElementById(whichLayer).style.display = "none"; 
    } 
} 
</script> 

编辑:调用函数的代码。

<div class="question"> 
    <a href="javascript:showAnswer('2111692','1692','en')">Click here</a> 
</div> 
<div id="2111692" class="answer">Answer shows here.</div> 

样式表:

.answer { 
clear: both; 
margin-left: 30px; 
display: none; 
} 
+0

这个事件是如何连接起来的? –

+0

编辑帖子以添加呼叫功能。 – Marine

+1

你确定你的'style.display'确实是'none'吗? – putvande

回答

0

由于使用(和标签)jQuery的,你可以我们.is(':hidden')更换style.display == 'none'

​​

您需要点击两次,因为第一时间style.display == 'none'评估为false,因此进入您的else并设置实际上0到none

+0

它的工作原理!谢谢! – Marine

相关问题