在此页面上,当您单击文本时,div1必须淡出并删除自身,并且必须出现div2。事情是脚本首先pre2nd div2然后div1淡出。如何强制脚本使div1淡出然后加上div2?
注意:
提前致谢。
的index.html
<!DOCTYPE html>
<html>
<head>
<script src = "http://code.jquery.com/jquery-1.10.1.min.js" type = "text/javascript"></script>
<script src = "script.js" type = "text/javascript"></script>
</head>
<body>
<div id = "div1">
<h1 id = "text1">This is div1</h1>
</div>
</body>
</html>
的script.js
$(document).ready (function() {
$(document).on ("click", "#text1", function() {
$("#div1").fadeOut (function() {
$(this).remove();
});
$("body").prepend ("<div id = 'div2'></div>");
$("#div2")
.hide()
.append ("<h1 id = 'text2'>This is div2</div>")
.fadeIn();
});
$(document).on ("click", "#text2", function() {
$("#div2").fadeOut (function() {
$(this).remove();
});
$("body").prepend ("<div id = 'div1'></div>");
$("#div1")
.hide()
.append ("<h1 id = 'text1'>This is div1</div>")
.fadeIn();
});
});
答案 0 :(得分:2)
尝试这样:Example
$(document).on ("click", "#text1", function() {
$("#div1").fadeOut (function() {
$(this).remove();
$("body").prepend ("<div id = 'div2'></div>");
$("#div2")
.hide()
.append ("<h1 id = 'text2'>This is div2</div>")
.fadeIn();
});
});
答案 1 :(得分:1)
将fadeIn移动到回调中。点击此处:http://jsfiddle.net/balintbako/WGsGu/
$(document).ready(function () {
$(document).on("click", "#text1", function () {
$("#div1").fadeOut(function () {
$(this).remove();
$("body").prepend("<div id = 'div2'></div>");
$("#div2")
.hide()
.append("<h1 id = 'text2'>This is div2</div>")
.fadeIn();
});
});
$(document).on("click", "#text2", function () {
$("#div2").fadeOut(function () {
$(this).remove();
$("body").prepend("<div id = 'div1'></div>");
$("#div1")
.hide()
.append("<h1 id = 'text1'>This is div1</div>")
.fadeIn();
});
});
});
答案 2 :(得分:0)
您可以使用.promise()
和.done()
:
$(document).on ("click", "#text1", function() {
$("#div1").fadeOut (function() {
$(this).remove();
}).promise().done(function(){ // <----here
$("body").prepend ("<div id = 'div2'></div>");
$("#div2")
.hide()
.append ("<h1 id = 'text2'>This is div2</div>")
.fadeIn();
});
});
$(document).on ("click", "#text2", function() {
$("#div2").fadeOut (function() {
$(this).remove();
}).promise().done(function(){ // <----here
$("body").prepend ("<div id = 'div1'></div>");
$("#div1")
.hide()
.append ("<h1 id = 'text1'>This is div1</div>")
.fadeIn();
});
});
答案 3 :(得分:0)
你想要这样吗? http://jsfiddle.net/yeyene/tcJF9/
只需将.delay(800)
用于.fadeIn('div')。
$(document).ready (function() {
$(document).on ("click", "#text1", function() {
$("#div1").fadeOut (function() {
$(this).remove();
});
$("body").prepend ("<div id = 'div2'></div>");
$("#div2")
.hide()
.append ("<h1 id = 'text2'>This is div2</div>")
.delay(800).fadeIn();
});
$(document).on ("click", "#text2", function() {
$("#div2").fadeOut (function() {
$(this).remove();
});
$("body").prepend ("<div id = 'div1'></div>");
$("#div1")
.hide()
.append ("<h1 id = 'text1'>This is div1</div>")
.delay(800).fadeIn();
});
});