gpt4 book ai didi

javascript - 链接 JQuery 命令

转载 作者:行者123 更新时间:2023-11-28 21:20:27 24 4
gpt4 key购买 nike

我有一个简单的表格,我想要淡出,替换表格的内容,然后淡入。由于 JQuery 允许您链接命令,我认为这可以通过一个简单的步骤完成:

$('#testTable').fadeOut(500).replaceWith(generateTable()).fadeIn(500);

但是,这不起作用。它取代了表格,但跳过了淡入淡出效果。我还尝试使用 FadeOut() 中的回调函数。

    $('#testTable').fadeOut(500, function () {
$('#testTable').replaceWith(generateTable());
$('#testTable').fadeIn(500);
});

在此版本中,表格淡出,替换内容,但立即重新出现。我认为这可能是因为我的新表没有设置不透明度属性,但如果我在generateTable中将其设置为0,则即使我再次调用fadeIn(),该表也永远不会重新出现。

有人可以帮助我理解为什么会发生这种情况,以及生成我正在寻找的淡出/淡入效果的正确方法是什么?此测试的完整代码如下所示。感谢您的帮助。

    <head>
<script src="../JSCommon/jquery-1.5.1.min.js" type="text/javascript"></script>
<script type="text/javascript">

$(document).ready(function() {

var SPACE = 32;
var KEY_LEFT = 37;
var KEY_RIGHT = 39;
var KEY_UP = 38;
var KEY_DOWN = 40;

$(document).keydown(function(event) {
console.log("keydown: code=" + event.keyCode);

if (event.keyCode == SPACE) {
// Fades don't work in this verison
//$('#testTable').fadeOut(500).replaceWith(generateTable()).fadeIn(500);

// Fade Out works, fade in does not
$('#testTable').fadeOut(500, function () {
$('#testTable').replaceWith(generateTable());
$('#testTable').fadeIn(500);
});
} else if (event.keyCode == KEY_LEFT) {
$('#testTable').fadeOut(500);
} else if (event.keyCode == KEY_RIGHT) {
$('#testTable').fadeIn(500);
} else if (event.keyCode == KEY_UP) {
$('#testTable').fadeOut(500).fadeIn(500);
} else if (event.keyCode == KEY_DOWN) {
$('#testTable').replaceWith(generateTable());
}
});

function generateTable() {
var table = '<table id="testTable" style="top:20px; left: 220px; background-color: #89BC38; position: absolute;">';
for (var col=0; col<2; col++) {
table += '<tr>';
for (var row=0; row<2; row++) {
table += '<td>' + Math.round(10 * Math.random()) + '</td>';
}
table += '</tr>';
}
return table;
}

});
</script>

</head>

<body>

<table id="testTable" style="top:20px; left: 220px; background-color: #89BC38; position: absolute;">
<tr>
<td>1</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>4</td>
</tr>
<table>
<p>
left: Fade Out<br>
right: Fade In<br>
up: Fade Out then back in<br>
down: Replace Table<br>
space: Fade out, replace table, fade in<br>
</p>
</body>

最佳答案

你尝试过吗:

var testTable = $('#testTable');

testTable.fadeOut(500, function () {
testTable.html(generateTable()).delay(3000).fadeIn(500); // HTML or replaceWith here is possible, actually
});

我对您想要达到的效果有点困惑,因此请发表评论并进行说明,我将继续使用它。

关于javascript - 链接 JQuery 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6526797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com