var $target = $("#a");
$(document).ready(function() {
$target.fadeOut('fast');
});
a是一个列表项。出于某种原因,当变量在$(document).ready()之外定义时,它不会淡出。我认为如果我在全局范围内定义$ target,我可以在函数内部访问它。
你能告诉我在document.ready函数外部和内部定义它之间的区别吗?
答案 0 :(得分:1)
当您设置$ target变量时,文档尚未加载,您需要将其设置为“就绪”功能。
尝试这3个可能性:
//with global variable.
var $target = false;
$(document).ready(function() {
$target = $("#a");
$target.fadeOut('fast');
});
//with local variable.
$(document).ready(function() {
var $target = $("#a");
$target.fadeOut('fast');
});
//without variable
$(document).ready(function() {
$("#a").fadeOut('fast');
});
答案 1 :(得分:0)
您的案例中的问题是,在$(document).ready(function(){})
之外 DOM 未完全加载,当您分配var $target = $("#a");
($(document).ready(function(){})
之外)时,可能是在 DOM 中没有$("#a")
(id
'a'元素)。当你的html(DOM)是$(document).ready(function(){})
事件时会触发完全装满了。
正确的jquery代码应如下所示:
$(document).ready(function() {
var $target = $("#a");
$target.fadeOut('fast');
});