请教jquery的hide()和show()方法遇到的问题
jquery的hide(speed,callback)和show(speed,callback)方法,callback代表hide和show完成之后要执行的函数。但是在测...
jquery的hide(speed,callback)和show(speed,callback)方法,callback代表hide和show完成之后要执行的函数。但是在测试中发现是先执行的是callback的函数,之后才执行hide和show的方法,而且在hide的时候,加上参数后界面上明显有个跳动的动作,就是隐藏后又显示下隐藏前的组件然后再隐藏,不加参数则不会看到该现象,不知是为什么,请高手指导下。
见下面例子:
<html>
<head>
<script type="text/javascript" src="../lib/jquery-1.7.1.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#hide").click(function(){
$("#class1").hide(1000,myCallBack());
});
$("#show").click(function(){
$("#class1").show("slow",myCallBack());
});
});
function myCallBack(){
alert("callBack");
}
</script>
</head>
<body>
<div id="class1"><h1>content</h1></div>
<input id = "hide" type = "button" value="hide" />
<input id = "show" type = "button" value="show" />
</body>
</html> 展开
见下面例子:
<html>
<head>
<script type="text/javascript" src="../lib/jquery-1.7.1.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#hide").click(function(){
$("#class1").hide(1000,myCallBack());
});
$("#show").click(function(){
$("#class1").show("slow",myCallBack());
});
});
function myCallBack(){
alert("callBack");
}
</script>
</head>
<body>
<div id="class1"><h1>content</h1></div>
<input id = "hide" type = "button" value="hide" />
<input id = "show" type = "button" value="show" />
</body>
</html> 展开
4个回答
展开全部
myCallBack去掉括号就行了
这个效果用fadeIn和fadeOut也可以,渐隐渐现。
这个效果用fadeIn和fadeOut也可以,渐隐渐现。
追问
非常感谢,去掉括号可以了,还有一个疑问:hide的时候,加上参数隐藏的时候会有一个跳动的动作,就是隐藏后又显示下隐藏前的组件然后再隐藏,不加参数则不会看到该现象,这个是为什么呀?
追答
Jquery动画在IE下出现抖动,是因为浏览器解析该页面并没有采用标准模式,而Jquery动画必须是在标准模式之下,也就是strict mode。
如果不在HTML前制定DOCTYPE,那么IE会使用怪癖模式,也就是Quirks Mode解析该页面。从科学地角度讲,我们还是应该制定为strict mode的。但是难保你当初为了省事而忘记写了,结果项目越做越大了。
而你又恰恰使用了Jquery,你可以选在再把制定为strict mode的这行代码
加上去,Jquery动画应该就正常了
展开全部
$("#class1").hide(1000,myCallBack());
$("#class1").show("slow",myCallBack());
上面两句,把myCallBack后面的括号去掉,分别改成
$("#class1").hide(1000,myCallBack);
$("#class1").show("slow",myCallBack);
$("#class1").show("slow",myCallBack());
上面两句,把myCallBack后面的括号去掉,分别改成
$("#class1").hide(1000,myCallBack);
$("#class1").show("slow",myCallBack);
追问
非常感谢,去掉括号可以了,还有一个疑问:hide的时候,加上参数隐藏的时候会有一个跳动的动作,就是隐藏后又显示下隐藏前的组件然后再隐藏,不加参数则不会看到该现象,这个是为什么呀?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你说的第二个问题主要是ie下的吧?ff下的效果会好一些,最后那个跳跃看起来会很小
这个似乎是没有办法的
这个似乎是没有办法的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
确实有跳动的情况
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询