如何使用jQuery的load(fn)方法使其实际工作
JQuery文档中有这样一句话。loadfn: 注意:仅当您设置 它在元素完全释放之前进行 加载,如果你在那之后设置的话 什么也不会发生 那么什么时候应该为绑定加载事件呢?据我所知,在这个div实际出现之前执行它是不起作用的,因为$'test'不会选择它,而在那之后执行它,如上所述,已经太晚了。以下代码似乎支持这一点:如何使用jQuery的load(fn)方法使其实际工作,jquery,Jquery,JQuery文档中有这样一句话。loadfn: 注意:仅当您设置 它在元素完全释放之前进行 加载,如果你在那之后设置的话 什么也不会发生 那么什么时候应该为绑定加载事件呢?据我所知,在这个div实际出现之前执行它是不起作用的,因为$'test'不会选择它,而在那之后执行它,如上所述,已经太晚了。以下代码似乎支持这一点: <html> <head></head> <body> <script type="text/javascript" sr
<html>
<head></head>
<body>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$('#test').load(function(event) { event.target.css('color', 'blue'); alert('a');});
</script>
<div id="test">TEST</div>
<script type="text/javascript">
$('#test').load(function(event) { event.target.css('color', 'red'); alert('b');});
</script>
</body>
</html>
加载后,什么也没有发生,没有颜色变化,没有警报,Firebug说一切正常。它可能在DOM准备就绪之前启动,因此测试div还不存在,请尝试将其包装在$document中。就绪 应该看起来像:
$(document).ready(function(){
$('#test').load(function(event) { event.target.css('color', 'blue'); alert('a');});
};)
它可能在DOM准备就绪之前触发,因此测试div还不存在,请尝试将其包装在$document中。就绪 应该看起来像:
$(document).ready(function(){
$('#test').load(function(event) { event.target.css('color', 'blue'); alert('a');});
};)
据我所见,只有窗口和图像触发加载事件
$(function(){
$("#test").css("color","blue");
});
据我所见,只有窗口和图像触发加载事件
$(function(){
$("#test").css("color","blue");
});
加载事件用于异步加载的元素,如图像和ajax加载的内容 它对于静态内容是无用的
在您的示例中,第一个加载事件处理程序是在定义测试元素之前绑定的,因此它无法工作。第二个加载事件处理程序太晚了,因为测试已经加载。加载事件用于异步加载的元素,如图像和ajax加载的内容 它对于静态内容是无用的
在您的示例中,第一个加载事件处理程序是在定义测试元素之前绑定的,因此它无法工作。第二个加载事件处理程序太晚了,因为测试已经加载。如果我正确理解您的意图,您打算编写的代码是:
$(function() {
$('#test').css('color', 'blue');
alert('a');
});
如果您还希望测试元素在通过AJAX调用加载其内容时执行特定功能,请尝试以下操作:
$(function() {
$('#test').css('color', 'blue').load(function() {
$('#test').css('color', 'red');
alert('b');
});
alert('a');
});
如果我正确理解了您的意图,那么您打算编写的代码是:
$(function() {
$('#test').css('color', 'blue');
alert('a');
});
如果您还希望测试元素在通过AJAX调用加载其内容时执行特定功能,请尝试以下操作:
$(function() {
$('#test').css('color', 'blue').load(function() {
$('#test').css('color', 'red');
alert('b');
});
alert('a');
});
对。如果您需要在加载时修改某些内容,请在$document.ready中通过它…那么有没有其他方法可以强制同时显示静态dom元素及其动态创建的内容?我试图避免这样的情况:在重新加载页面后,用户看到静态dom元素中没有任何内容,并且在该元素被javascript函数的结果填充之前,必须花费大约一秒的时间。当然,我可以在服务器端创建这些初始内容,但我希望这完全可以在js.right-o中完成。如果您需要在加载时修改某些内容,请在$document.ready中通过它…那么有没有其他方法可以强制同时显示静态dom元素及其动态创建的内容?我试图避免这样的情况:在重新加载页面后,用户看到静态dom元素中没有任何内容,并且在该元素被javascript函数的结果填充之前,必须花费大约一秒的时间。当然,我可以在服务器端创建这个初始内容,但我希望这可以完全用js来完成。在这种情况下,从我所知,load方法是不必要的。在这种情况下,从我所知,load方法是不必要的。事实上,我试图做一些不同的事情,并且以我现在觉得奇怪的方式。更不用说它不起作用了我在Philippe Leybaert的回答下解释了。@Olek感谢您的澄清。我理解内容加载延迟的问题。您几乎肯定已经想到了这一点,但也许一个加载对话框或指示器就足够了?事实上,我正在尝试做一些不同的事情,并且以现在对我来说似乎很奇怪的方式。更不用说它不起作用了我在Philippe Leybaert的回答下解释了。@Olek感谢您的澄清。我理解内容加载延迟的问题。您几乎肯定已经想到了这一点,但也许一个加载对话框或指示器就足够了?