我有一个使用的脚本$(document).ready
,但它不使用jQuery中的任何其他内容.我想通过删除jQuery依赖项来减轻它.
如何在$(document).ready
不使用jQuery的情况下实现自己的功能?我知道使用window.onload
不会是相同的,因为window.onload
在加载了所有图像,帧等之后的火灾.
哪个得到更广泛的支持:window.onload
或document.onload
?
有什么区别
$(document).ready(function(){
//my code here
});
Run Code Online (Sandbox Code Playgroud)
和
$(window).load(function(){
//my code here
});
Run Code Online (Sandbox Code Playgroud)
我想确保:
$(document).ready(function(){
})
Run Code Online (Sandbox Code Playgroud)
和
$(function(){
});
Run Code Online (Sandbox Code Playgroud)
和
jQuery(document).ready(function(){
});
Run Code Online (Sandbox Code Playgroud)
是相同的.
你能告诉我他们之间有什么不同和相似之处吗?
我根本不懂javascript.引导文档说到
通过javascript调用模态:$('#myModal').modal(options)
我不知道如何在页面加载时调用它.使用引导页面上提供的代码,我可以在单击元素时成功调用Modal,但我希望它在页面加载时立即加载.
有什么区别window.onload
,document.onready
和body.onload
?
这是我的难题:我有一个使用Google Maps V3和jQuery的页面.这一切都在FF5,Chrome和Safari本地运行良好.
一旦我上传到网站,我在第一行尝试使用谷歌对象时出现"谷歌未定义"错误
var defaultLocation = new google.maps.LatLng(lat, lng);
Run Code Online (Sandbox Code Playgroud)
它只发生在FF中,并且只发生在远程(即,如果我在本地将文件加载到FF中,它运行良好).Chrome和Safari似乎都很好用,就像我的Android和iPod浏览器一样.
这是我到目前为止所尝试的:
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
该<head>
部分的顶部.$(function() {...});
到被调用initialize()
和添加的函数<body onload="initialize()">
但由于这只发生在远程机器上的FF中并且运行良好,否则我认为它与我的代码没有任何关系.也许FF5中的加载顺序是拧紧的.也许它比其他浏览器更优先考虑网络资源.此时我真的不知道该怎么做.
任何帮助表示赞赏.
家伙
更新:
只是想添加以下事实:在Mac上尝试上一个之后,我在Windows中尝试了FF5,并且复制了完全相同的行为.
为了更好的衡量,我也尝试了Pale Moon - 结果相同.Chrome 14,Opera 11.50甚至frickin'IE9(未包含在测试计划中)都有效.它只是FF5,现在在Mac和Windows 7上,在该页面上失败.
我通常将所有JavaScript脚本放在一个文件中scripts.js
(例如,HTTP请求越少越好).因此,正如预期的那样,某些页面需要一些脚本,有些则不需要.
要定位特定页面,我使用以下内容:
if ($("body#share").length > 0) {
// Place the logic pertaining to the page with ID 'share' here...
}
// The file / script continues...
Run Code Online (Sandbox Code Playgroud)
其他或更好的建议?谢谢!
澄清:我不是在寻找将多个JS文件合并到一个大文件中并保留多个单独的JS文件之间的优缺点.对此的答案肯定是"取决于具体情况"(我们知道).我的问题是,假设我的所有JS逻辑都放在一个大文件中,如何在加载相应的页面时才使特定的(大块)脚本运行?我过去常做的一种方法是使用if ($('#id-of-target-element')) { /* run the script */}
; 有没有更好的办法?
在JavaScript中,当我想在页面加载时运行一次脚本时,我应该使用window.onload
还是只编写脚本?
例如,如果我想要一个弹出窗口,我应该写(直接在<script>
标签内):
alert("hello!");
Run Code Online (Sandbox Code Playgroud)
要么:
window.onload = function() {
alert("hello!");
}
Run Code Online (Sandbox Code Playgroud)
两者似乎都在加载页面后运行.有什么区别?
在window.onload上使用Jquery ready()函数有什么好处吗?
// Jquery ready
$(document).ready(function() {
});
// window.onload
window.onload = function () {
}
Run Code Online (Sandbox Code Playgroud) 最近我看到你可以使用其中任何一个
$('document').ready(function() {
//Do Code
});
Run Code Online (Sandbox Code Playgroud)
要么
$('window').load(function() {
//Do Code
});
Run Code Online (Sandbox Code Playgroud)
对于jQuery.
但是,它们对我来说似乎是一样的!但显然不是.
所以我的问题是:我应该使用哪一个基于动画和异步的网站?而且两者中的哪一个通常更好用?
谢谢.
javascript ×9
jquery ×4
onload ×2
document ×1
dom-events ×1
filesystems ×1
firefox ×1
google-maps ×1
html5 ×1
load ×1
onload-event ×1
window ×1