Javascript函数在第一次单击时不起作用

时间:2015-07-23 07:19:50

标签: javascript html

我在一个应用程序中工作,我使用图片作为显示隐藏功能的链接。但我的问题是,每当我点击链接时,隐藏显示功能在第一次点击时不起作用,在第二次点击是它正在工作。如何解决它。这是我的代码

<div id="primaryLabel" class="box">
    <div class="bottomBorder">
        <h4>Personal Information</h4>
    </div>
    <a href="#" onclick="open_new();"><img style="border:0;margin-left: 97%;" src="<%=request.getContextPath()%>/images/edit.png" width="20" height="19" title="Click to edit"></a>
    <div class="box-content">
        <table>
            <tr>
                <th><img style="border:0;" src="<%=request.getContextPath()%>/images/home.png" width="20" height="19" title="Address of residence"><span style='color: #FF0000; display: inline;'></span></th>
                <td>
                    <label for="address1" id="address1ForLabel">
                        <%=address1 %>
                    </label>
                </td>
            </tr>
            <tr>
                <th><img style="border:0;" src="<%=request.getContextPath()%>/images/city.png" width="20" height="19" title="City"><span style='color: #FF0000; display: inline;'></span></th>
                <td>
                    <label for="city" id="cityForLabel">
                        <%=city %>
                    </label>
                </td>
            </tr>
            <tr>
                <th><img style="border:0;" src="<%=request.getContextPath()%>/images/phone.jpg" width="20" height="19" title="Primary Phone"><span style='color: #FF0000; display: inline;'></span></th>
                <td>
                    <label for="primary phone" id="primaryPhoneForLabel">
                        <%=primaryPhone %>
                    </label>
                </td>
            </tr>
        </table>
    </div>
</div>

这是我使用普通java脚本的html部分

function open_new() {

    if (document.getElementById('chk').checked == true) {
        document.getElementById('chk').checked = false;
    } else {
        document.getElementById('chk').checked = true;
    }
    if (document.getElementById('chk').checked == true) {
        document.getElementById('contentToShow').style.display = 'block';
        document.getElementById('primaryLabel').style.display = 'none';
    } else {
        document.getElementById('contentToShow').style.display = 'none';
    }
}

复选框

    

这个open_new()函数在第一次点击后无法正常工作,任何人都可以帮我解决???

1 个答案:

答案 0 :(得分:1)

当您点击图片时,href标记会首先添加一个&#39;#&#39;到url,然后函数运行。但是通过添加#&#39;#&#39;到页面刷新页面,并且open_new()不会加载。

  • 尝试更改href =&#34;#&#34; to:href =&#34; javascript:open_new()&#34;。

  • 或者删除anchortags并将onclick放在图像上。