JavaScript window.onload和jQuery的$(document).ready()方法有什么区别?
$(window).load(function() {})和$(document).ready(function() {})jQuery有什么区别?
有什么区别window.onload,document.onready和body.onload?
我有一个first.js文件包含在页面index.php中,有类似这样的东西:
$(function(){
$("#my_slider").slider("value", 10);
});
Run Code Online (Sandbox Code Playgroud)
而在index.php中我有一些动态创建的滑动:
<?php function slidders($config, $addon)
{
$return = '
<script type="text/javascript">
$(function() {
$("#slider_'.$addon['p_cod'].'").slider({
min: '.$config['min'].',
max: '.$config['max'].',
step: '.$config['step'].',
slide: function(event, ui) {
$("#cod_'.$addon['p_cod'].'").val(ui.value);
$(".cod_'.$addon['p_cod'].'").html(ui.value+"'.@$unit.'");
},
change: function(event, ui) {
$("#cod_'.$addon['p_cod'].'").change();
}
});
$("#cod_'.$addon['p_cod'].'").val($("#slider_'.$addon['p_cod'].'").slider("value"));
$(".cod_'.$addon['p_cod'].'").html($("#slider_'.$addon['p_cod'].'").slider("value")+"'.@$unit.'");
});
</script>';
return $return;
} ?>
Run Code Online (Sandbox Code Playgroud)
问题是,因为我的index.php滑块在我的first.js之后被实例化我无法在那里设置一个值,是否有任何事件,比如"毕竟$(document).ready()已经运行"我可以在first.js中使用来操作index.php中创建的滑块?
如果我有如下图像标记:
<img src="myimage.jpg" />
Run Code Online (Sandbox Code Playgroud)
如果我添加"async":
<img async src="myimage.jpg" />
Run Code Online (Sandbox Code Playgroud)
图像加载是否异步?
如何通过jQuery检查文档是否已准备好(所有js文件已加载,DOM已准备好)?有旗帜吗?
如果某些文件未完全下载,则会遇到问题,并且该事件由用户引发.我想检查内部事件处理程序.
我正在使用jQuery,asp.net
我无法解决这个问题.我的上帝让我的大脑受伤了,所以我转向你,互联网上的好人.
我一直在盯着jQuery $.noConflict()函数的文档而没有运气.
我的问题是我正在开发的网站已经包含了jQuery 1.1.3.1,但我想在一些地方做一些非常棒的时髦用户界面工作,所以我想使用1.4.2,原因很明显.
我一直试图并排运行这些,但我似乎无法获得任何代码来执行.我还需要使用1.4.2实现了几个插件,所以我不知道,如果把在jQuery的喜欢的东西$j会的工作,因为很明显,插件会拿起$和jQuery作为1.1.3.1,而不是1.4.2.
有没有办法可以将我的代码包装在一个noConflict()块中,还包括我需要创建自包含1.4.2代码块的插件?
任何帮助都会很棒,因为我的可怜的头脑在API文档的广阔荒地中哭泣!
我正在使用$(window).load(function(){});我的项目,直到某个地方我看到有人说我们可以使用$(function(){});它们并且它们的表现相同.
但是现在我有更多经验,我注意到它们并不相同.我注意到第一段代码在第二段代码之后就开始了.
我只是想知道有什么区别?
我有这样的HTML:
<!-- simulate a slow-loading request -->
<script src="http://example.com:81/non-existent-script.js"></script>
<script>
$(document).ready(function() { alert("ready"); })
</script>
Run Code Online (Sandbox Code Playgroud)
当我在Chrome中打开页面时,example.com请求应该挂起 - 但是当我点击F5时,会在页面刷新之前显示"就绪"警报.为什么会这样?如何区分这种情况(即页面加载期间刷新)和"正常"页面准备好了?
我在下面的示例中使用jQuery,但我的问题更普遍适用于使用javascript来显示如果未启用javascript会丢失的内容的任何情况.
假设我想在页面加载时淡入一些文本:
.fade-in { opacity:0; }
<div class="fade-in">FOOBAR</div>
$('.fade-in').fadeIn();
Run Code Online (Sandbox Code Playgroud)
但是,如果客户端没有启用JavaScript,该怎么办?
我不希望文本保持不可见,所以也许我将CSS设置为结束状态作为后备,然后在动画之前使用javascript对其进行UN设置.这样,没有javascript的用户只看到普通文本(没有fadeIn),而JS用户看到淡入淡出.
.fade-in { opacity:1; }
<div class="fade-in">FOOBAR</div>
$('.fade-in').css('opacity', 0);
$('.fade-in').fadeIn();
Run Code Online (Sandbox Code Playgroud)
这是有效的,但在大多数情况下,当设置CSS显示属性和javascript取消设置时,它将导致令人不快的"闪烁".在上面的示例中,javascript正常工作的用户会看到"FOOBAR"出现一瞬间,然后消失,然后淡入.
有没有最好的做法,这不会导致闪烁或牺牲无JS用户?
请不要注意上面的小例子.这只是为了展示这个概念.我正在寻找处理这些案件的更广泛的策略.另外,我不想讨论渐进增强的优点,或者是否支持无JS用户.这是另一个线程的问题.
更新:我知道像Modernizr这样的工具可以用来添加.no-js类等,但我更喜欢不依赖这些库的解决方案.
我想知道哪一个是正确的运行js代码,根据窗口高度计算垂直菜单的高度,并按时,不迟到,不早.
我正在使用,document.ready但它并没有真正帮助我解决这个问题,它有时不设置,我必须重新加载页面,然后它正在工作,但不是第一次加载.
如何解决这个问题呢?
这是我的代码:
$(document).ready(function(){
var winh = document.body.clientHeight;
var footer = document.getElementById('footer').offsetHeight;
document.getElementById('sidebar').style.height = winh - 5/2*footer + 'px';
document.getElementById('sidebar').style.marginBottom = footer + 'px';
$(window).resize(function(){
var winh = document.body.clientHeight;
var footer = document.getElementById('footer').offsetHeight;
document.getElementById('sidebar').style.height = winh - 5/2*footer + 'px';
document.getElementById('sidebar').style.marginBottom = footer + 'px';
});
});
Run Code Online (Sandbox Code Playgroud) 我在不同的 js 文件中声明全局变量,然后在不同的文件中使用。在开始执行之前,我需要确保所有 js 都已加载。我也在尝试使用 require.js 转向模块化 js。但现在我需要一个快速的解决方案。在 .js 下运行我的 js 代码安全 $().ready()吗?我猜脚本标签将被同步加载,因此在所有脚本都加载完毕之前,DOM 不会准备好。
或者确实$(window).load()保证所有脚本文件都已加载。
谢谢!
我有一个DIV(.container)和一个button(.btn),我想隐藏,直到页面完全加载.我设法通过在一个小jquery片段上使用dispay:none来做到这一点,但如果我可以使用visibillity会更好:隐藏因为页面不会移动(就像显示:) none.
基本上,我有:
<style>
.container {visibility:hidden;}
.btn {visibility:hidden;}
</style
Run Code Online (Sandbox Code Playgroud)
是否有任何可以帮助我的好灵魂,jquery所以只有在页面完全加载后它才显示出来?
jquery ×10
javascript ×8
css ×2
dom ×2
asp.net ×1
asynchronous ×1
dom-events ×1
html5 ×1
image ×1
onload ×1
window-load ×1