在你作为重复投票之前,请听我说!
我有一个应用程序,它在访问数据库后从PHP代码生成一个表。
HTML非常简单:
<h2>Find food by name</h2>
<form method="post">
<label for="food">Food</label>
<input type="text" id="food" name="food">
<input id="submitBtn" type="submit" name="submit" value="View Results">
</form>
<a href="index.php">Back to home</a>
<?php require "templates/footer.php"; ?>
body元素开始标记位于header.php文件中。
这是JS,我们可以跳过PHP和SQL代码,这些工作正常。
$(function(){
if(jQuery){
alert("i am here"); // check if jQuery is loaded, it is.
}
if($('table').length == 0) {
alert("table is not generated yet"); // check if table is there, works as planned
}
else {
var reso = $('table').id="mainTable"; //assigning ID to the generated table
alert("table id is "+ reso); // testing ID assigment, this works
$(document.body).on('click', '#mainTable', function(e) {
e.preventDefault();
$('#mainTable').fadeOut(200).fadeIn(2000);
});
}
});
我正在使用&#34; on#34;,正确的jQuery版本,但这不起作用,控制台中没有错误消息。我尝试过#submitBtn而不是$ document.body,我尝试过使用和不使用preventDefault()。
我想要的只是在生成表格后暂时隐藏表格然后淡入其中。截至目前,它只是生成并显示,没有动画。
我显然是在localhost上运行它,没有代码链接。
编辑,找到解决方案,它确实是CSS opacity设置为任何东西,但默认导致这个。即使是香草ID分配也没问题。 但是,这里有一个问题,Fade方法工作正常,但幻灯片,隐藏,显示方法无法按预期工作。动画只能在很短的时间内看到。编辑,测试可用的jQuery方法后...... FadeToggle和链接像
fadeOut(100).delay(200).fadeIn(300)
真的很糟糕。 唯一可接受的方法是在fadeOut之后运行回调,如下所示:
if($('table').length > 0) { $('#mainTable').fadeOut(100, function() {
$('#mainTable').fadeIn(2000);
});}
所有其他方法都太生涩,我甚至不敢使用animate()。 将CSS设置为none的上述内容非常流畅。