Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为某个零件重新定义函数中的变量_Javascript_Jquery - Fatal编程技术网

Javascript 为某个零件重新定义函数中的变量

Javascript 为某个零件重新定义函数中的变量,javascript,jquery,Javascript,Jquery,我有以下代码: var $name=prompt("In order for this page to work, we just need a piece of information. Please enter your first name."); var $age=prompt("Please enter your new age.") function startSong() { var a = 'Happy birthday to you'; $("#btext")

我有以下代码:

var $name=prompt("In order for this page to work, we just need a piece of information. Please enter your first name.");
var $age=prompt("Please enter your new age.")

function startSong() {
    var a = 'Happy birthday to you';
    $("#btext").html(a).fadeIn(2000);
    window.scrollBy(0, 200);
    $("#btext").fadeOut(2000);
    $("#btext").html(a).fadeIn(2000);
    a = 'Happy birthday to you, ' + $name;
    $("#btext").fadeOut(2000);
    $("#btext").html(a).fadeIn(2000)

}
我希望它先打印两次“祝你生日快乐”,然后打印两次“祝你生日快乐”。然而,它似乎直接跳到了变量的重新定义

以下是相关的HTML:

<button onclick="startSong()">Now, we all want to sing you Happy Birthday! Go on and click this button!</button>
<h5 id=btext> </h5>

谢谢

您需要使用回调来延迟每个淡出/淡出,直到前一个淡出/淡出完成

var$name=promptIn为了让这个页面正常工作,我们只需要一条信息。请输入您的名字。; var$age=prompt请输入您的新年龄。 功能启动{ var a=‘祝你生日快乐’; $btext.htmla.fadeIn2000,函数{ window.scrollby0200; $btext.fadeOut2000,函数{ $btext.htmla.fadeIn2000,函数{ a=‘祝你生日快乐’+$name; $btext.fadeOut2000,函数{ $btext.htmla.fadeIn2000; }; }; }; }; } 现在,我们都想为你唱生日快乐!继续点击这个按钮!
您需要使用回调来延迟每个淡出/淡出,直到前一个淡出/淡出完成

var$name=promptIn为了让这个页面正常工作,我们只需要一条信息。请输入您的名字。; var$age=prompt请输入您的新年龄。 功能启动{ var a=‘祝你生日快乐’; $btext.htmla.fadeIn2000,函数{ window.scrollby0200; $btext.fadeOut2000,函数{ $btext.htmla.fadeIn2000,函数{ a=‘祝你生日快乐’+$name; $btext.fadeOut2000,函数{ $btext.htmla.fadeIn2000; }; }; }; }; } 现在,我们都想为你唱生日快乐!继续点击这个按钮! $btext.htmla调用和对a的分配不会等待前面的淡入淡出效果完成。因此,所有这些声明都将发生,即使之前设置的效果尚未完成。它们是异步操作

fade*调用可以传递回调,以便在效果完成时让代码运行。将代码放入正确的淡入淡出*回调以获得预期操作:

$("#btext").html(a).fadeIn(2000,function(){
  window.scrollBy(0, 200);
  $("#btext").fadeOut(2000,function(){
    $("#btext").html(a).fadeIn(2000,function(){
      //and so on
    });
  });
});
显然,这会导致

因此,您可以在淡入淡出*效果之间选择:

功能启动{ 设btext=$btext; 让a=祝你生日快乐; 让$name=Stackoverflow; btext.htmla //在内部将效果添加到fx队列 .fadeIn2000 //在内部将效果添加到fx队列 .fadeout 2000 //添加将html更改为fx队列的代码 //完成上一个队列项目时执行 .queuefunctionnext{ btext.htmla; //调用next,让队列前进到下一个项目 下一个 } .fadeIn2000 .fadeout 2000 .queuefunctionnext{ a=‘祝你生日快乐’+$name; btext.htmla; 下一个 } .fadeIn2000; } B文本{ 显示:无; } 现在,我们都想为你唱生日快乐!继续点击这个按钮! $btext.htmla调用和对a的分配不会等待前面的淡入淡出效果完成。因此,所有这些声明都将发生,即使之前设置的效果尚未完成。它们是异步操作

fade*调用可以传递回调,以便在效果完成时让代码运行。将代码放入正确的淡入淡出*回调以获得预期操作:

$("#btext").html(a).fadeIn(2000,function(){
  window.scrollBy(0, 200);
  $("#btext").fadeOut(2000,function(){
    $("#btext").html(a).fadeIn(2000,function(){
      //and so on
    });
  });
});
显然,这会导致

因此,您可以在淡入淡出*效果之间选择:

功能启动{ 设btext=$btext; 让a=祝你生日快乐; 让$name=Stackoverflow; btext.htmla //在内部将效果添加到fx队列 .fadeIn2000 //在内部将效果添加到fx队列 .fadeout 2000 //添加将html更改为fx队列的代码 //完成上一个队列项目时执行 .queuefunctionnext{ btext.htmla; //调用next,让队列前进到下一个项目 下一个 } .fadeIn2000 .fadeout 2000 .queuefunctionnext{ a=‘祝你生日快乐’+$name; btext.htmla; 下一个 } .fadeIn2000; } B文本{ 显示:无; } 现在,我们都想为你唱生日快乐!继续点击这个按钮!
您是否可以使用代码段创建一个工作示例,或者发布相关的html部分,以便我们可以为您执行此操作。您是否可以使用代码段创建一个工作示例,或者发布相关的html部分,以便我们可以为您执行此操作。