关于jQuery hide()和show()的问题

时间:2013-03-18 20:28:29

标签: jquery html css

这是我隐藏#edit的方法:正文中有一个加载图片,当设备准备就绪时,它会隐藏$ edit并显示加载图片。当在getDetail中完成操作时,隐藏#load并显示#edit。

但是,现在的问题是,在打开页面时,会显示加载和编辑,并且在getDetail函数之后它会正常工作。

我应该如何修改代码?

<script type="text/javascript">


    document.addEventListener("deviceready", onDeviceReady, false);

    function onDeviceReady() {
        $('#edit').hide();
        getDetail();
    }

</script>

js

function getDetail() {

        $('#load').hide();
        $('#edit').show();  


}

html部分

    <div id='load'>
    <img src="loading.gif" 
    style="margin-left:auto; margin-right:auto; ">
    </div><!-- /load -->


    <div id='edit'></div>

* 额外问题* 我是否需要在getDetail()的最后一行return false;?因为我的所有javascripts都放在一个js文件中。 getDetail()是第一个函数。运行此函数后,我发现其他函数不起作用,即使是一个简单的单击函数来提醒某些东西,这些函数只有在脚本以内联样式放入正文时才能工作。

PS。修复了一些复制和粘贴错误

2 个答案:

答案 0 :(得分:1)

只需修改

<div id='edit'></div>

<div id='edit' style="display:none;"></div>

并删除该行:

$('#edit').hide();

它没有任何效果,因为隐藏后会立即显示它。

答案 1 :(得分:1)

您有语法错误

getDetail()方法中有额外的右括号。语法错误不仅会影响这部分代码,还会破坏整个脚本。

然后,您应该首先使用CSS隐藏#edit元素

#edit {display: none;}

使得隐藏此元素的语句无效。只需删除部分$('#edit').hide()

即可

并且:您不应在Javascript代码结束前关闭<script>标记。