小女子请教 这是jquery的什么用法 感激涕淋

时间:2022-02-14 02:47:34
 function showIntroduce() {
        $("#allCity").slideDown("fast").show(function(){
            $(this).show();
        });

slideDown("fast")后面怎么还能接一个.show(function()  这到底啥意思 到底是什么用法
效果就是让#allCity 隐藏嘛  为啥要加这么多 

为何不直接用   function showIntroduce() {
        $("#allCity").slideDown("fast")  ;    
}

请问区别在哪 
    

13 个解决方案

#1


slideDown 通过高度变化(向下增大)来动态地显示所有匹配的元素,不是隐藏

#2


怎么感觉像多此一举了。。。坐等强人解析

#3


引用楼主 suifengyu222 的回复:
 function showIntroduce() {
        $("#allCity").slideDown("fast").show(function(){
            $(this).show();
        });

slideDown("fast")后面怎么还能接一个.show(function()  这到底啥意思 到底是什么用法
效果就是让#all……



这个我知道呀

#4


好像就是:高度变化时,还加载这个function,意思就是:这个function始终充满这个$("#allCity")吧

#5


有高人知道吗 

#6


可能方便更改show()函数的参数吧。。。

#7


经测试发现,如果给一个元素添加动画效果,那么你的动画效果对象就会从左上角进入页面,比如<p>a</p><img id="allCity" src="XXX" />,给img图片增加slideDown动画效果,那么该图片就会从段落a的下方的左上角开始进入页面,最后就停留在a段落下方,这就有个问题,我原来的图片不是在a段落右侧吗,怎么跑到下面去了,然后就是$(this).show()操作的作用,然而show("slow")这样也是无效的,因为这个也是动画效果,show()就不一样了,他是迅速将该元素显示出来,相当于设置display:block,图篇会在原来位置显示。这样做图片就会在slideDown动画结束后跑回原来的位置,这样写$("#allCity").slideDown("fast",function(){$(this).show();});和你的效果是一样的。
至于为什么动画效果的元素要从左上角出来而最终不回到原来位置的原因暂时不知,求大神解答

#8


确实不知道show还有这种用法,这种用法有点像事件处理函数的注册

#9


有高人知道吗  

#10


就是再调用一个函数,我写过异步刷新控件的时候用过。

#11


建议用jquery之前先多学点js,不然会迷迷糊糊的

那里是把一个函数当成一个参数传给show方法

#12


function showIntroduce() {
  $("#allCity").slideDown("fast").show(500,function(){
  $(this).show();
  });

如果这样你应该就很明确了   jquery 的api里有描述的

#13


引用楼主 suifengyu222 的回复:
 function showIntroduce() {
        $("#allCity").slideDown("fast").show(function(){
            $(this).show();
        });

slideDown("fast")后面怎么还能接一个.show(function()  这到底啥意思 到底是什么用法
效果就是让#all……


.show(function(){}),表示执行完show函数后要执行的函数,你可以测试一下,
 function showIntroduce() {
        $("#allCity").slideDown("fast").show(function(){
            alert("我show完了.");//看看显示结果你就明白了。
        });

#1


slideDown 通过高度变化(向下增大)来动态地显示所有匹配的元素,不是隐藏

#2


怎么感觉像多此一举了。。。坐等强人解析

#3


引用楼主 suifengyu222 的回复:
 function showIntroduce() {
        $("#allCity").slideDown("fast").show(function(){
            $(this).show();
        });

slideDown("fast")后面怎么还能接一个.show(function()  这到底啥意思 到底是什么用法
效果就是让#all……



这个我知道呀

#4


好像就是:高度变化时,还加载这个function,意思就是:这个function始终充满这个$("#allCity")吧

#5


有高人知道吗 

#6


可能方便更改show()函数的参数吧。。。

#7


经测试发现,如果给一个元素添加动画效果,那么你的动画效果对象就会从左上角进入页面,比如<p>a</p><img id="allCity" src="XXX" />,给img图片增加slideDown动画效果,那么该图片就会从段落a的下方的左上角开始进入页面,最后就停留在a段落下方,这就有个问题,我原来的图片不是在a段落右侧吗,怎么跑到下面去了,然后就是$(this).show()操作的作用,然而show("slow")这样也是无效的,因为这个也是动画效果,show()就不一样了,他是迅速将该元素显示出来,相当于设置display:block,图篇会在原来位置显示。这样做图片就会在slideDown动画结束后跑回原来的位置,这样写$("#allCity").slideDown("fast",function(){$(this).show();});和你的效果是一样的。
至于为什么动画效果的元素要从左上角出来而最终不回到原来位置的原因暂时不知,求大神解答

#8


确实不知道show还有这种用法,这种用法有点像事件处理函数的注册

#9


有高人知道吗  

#10


就是再调用一个函数,我写过异步刷新控件的时候用过。

#11


建议用jquery之前先多学点js,不然会迷迷糊糊的

那里是把一个函数当成一个参数传给show方法

#12


function showIntroduce() {
  $("#allCity").slideDown("fast").show(500,function(){
  $(this).show();
  });

如果这样你应该就很明确了   jquery 的api里有描述的

#13


引用楼主 suifengyu222 的回复:
 function showIntroduce() {
        $("#allCity").slideDown("fast").show(function(){
            $(this).show();
        });

slideDown("fast")后面怎么还能接一个.show(function()  这到底啥意思 到底是什么用法
效果就是让#all……


.show(function(){}),表示执行完show函数后要执行的函数,你可以测试一下,
 function showIntroduce() {
        $("#allCity").slideDown("fast").show(function(){
            alert("我show完了.");//看看显示结果你就明白了。
        });