2011-03-07 36 views
1

我遇到了一个我为我创建的网站编写的这个小脚本的问题。我完全不熟悉JavaScript,所以请原谅我,如果我错过了可能对您显而易见的事情。脚本不能在IE和Chrome中工作

该脚本的目的是在页面加载后立即隐藏div,然后在用户单击下拉菜单中的元素时显示该div。那就是:

$(document).ready(function(){ 

$("#cdcpanel").hide(); 

$("#contrpanel").hide(); 

$("#clickme").click(function() { 
    $("#cdcpanel").show(200, function() { 
    }); 
    $("#contrpanel").hide(200); 
}); 

$("#clickme2").click(function() { 
    $("#contrpanel").show(200, function() { 
    }); 
    $("#cdcpanel").hide(200); 
}); 

$("#hideall").click(function() { 
    $("#cdcpanel").hide(200); 
    $("#contrpanel").hide(200); 
}); 

}); 

正如你所看到的,div的cdcpanelcontrpanel最初隐藏。点击名为clickme的元素将会导致cdcpanel被显示,并且contrpanel被隐藏。点击元素clickme2,反而会触发相反的事件。问题是,除了Firefox之外,它不能在其他浏览器上运行。我在Chrome和IE上试过了,结果是div最初是隐藏的,但是通过点击下拉菜单没有任何反应。 这个脚本依赖于JQuery。它被称为在页面开始使用以下内容:

<script type="text/javascript" src="js/jquery.js"></script> 
<script type="text/javascript" src="js/jsshow.js"></script> 

任何有关如何使事情工作的建议是值得欢迎的!预先感谢您的时间和耐心。

+1

代码看起来不错。你应该看看控制台的错误。 – 2011-03-07 13:46:15

+0

^好主意。另外,如果要在页面加载时隐藏'#cdcpanel'和'#controlpanel',最好将它们设置为隐藏状态,这样可以避免显示并隐藏元素的可能性,从而导致要重排的页面。 – 2011-03-07 13:52:44

+0

代码看起来不错,尝试删除jsshow.js并查看它是否有效,如果有效,则问题出现在该文件中。 也正如马修所说,最好不要显示它们,而不是“隐藏”它们; '(“#cdcpanel”)。hide();'to'$(“#cdcpanel”).css('display','none');'或者甚至更好,在你的CSS文件中改变它。 – 2011-03-07 14:01:14

回答

-1

我不相信下拉菜单的选项元素有点击事件。尝试改变事件。

相关问题