HTML加载不起作用
HTML onload not working
我正试图使用html onload事件来触发javascript,但无法正常工作。最初的代码是:
html:
<div id='map' onload="generateMap.createMap();"></div>
JS:
var generateMap = function(){
return{
createMap: function(){
console.log(this.attr('id'));
element = this.attr('id');
navigator.geolocation.getCurrentPosition(initialize);
}
};
}
为了测试,我将html改为:
<div id='map' onload="alert('test');"></div>
有人能告诉我为什么什么都不起作用吗?
首先,onload
属性对div
标记无效。您很可能打算将onload
放置在body
标记中。
不幸的是,这并不是唯一的问题。
在onLoad
中,您引用generateMap
,就好像它是一个方法为createMap
的对象一样。然而,事实并非如此。您已将generateMap
分配给一个匿名函数。
为了使代码正常工作,generateMap
需要是一个方法为createMap
的对象。
你只需要首先将其设置为一个对象:
var generateMap = {
createMap: function(){
console.log(this.attr('id'));
element = this.attr('id');
navigator.geolocation.getCurrentPosition(initialize);
}
};
或者如果出于任何原因需要保留匿名函数,可以使用立即执行的函数:
var generateMap = (function(){
return {
createMap: function(){
console.log(this.attr('id'));
element = this.attr('id');
navigator.geolocation.getCurrentPosition(initialize);
}
})();
div没有onload事件。您可以在div标记之后使用script标记来模拟onload行为。
使用此
<head>
<meta charset="utf-8">
<script type="text/javascript">
var generateMap = {
createMap: function(element) {
navigator.geolocation.getCurrentPosition(initialize);
}
};
</script>
</head>
<body>
<div id='map'></div>
<script type="text/javascript">
generateMap.createMap('map');
</script>
</body>
假设Chrome。。div
标记没有onload
事件。检查以下两个jsfiddle:
不起作用:http://jsfiddle.net/o81e4dkr/
作品:http://jsfiddle.net/p3osqrdn/
我不知道如何在加载div时触发事件,除非它是通过jQuery.load()加载的,在这种情况下,您可以使用回调。
如果您使用的是jQuery,那么我喜欢以下为所有标签添加加载功能的函数:
$(document).ready (function () {
jQuery.each ($("[onload]"), function (index, item) {
$(item).prop ("onload").call (item);
return false;
});
});
相关文章:
- JavaScript链接在点击时不起作用;函数在页面加载时工作
- Jquery(多读/少读)在从数据库加载整个数据后不起作用
- 加载后的页面与ajax表单提交不起作用
- jQuery加载完成事件不起作用
- $(select).selectmenu('打开')不'如果使用ajax加载页面,则不起作用
- 使用requireJS的jqGrid-网格加载但不起作用
- 加载自定义类在ExtJs中不起作用
- jQuery Mobile pageinit在第一次加载页面上不起作用(可复制)
- jquery ias插件不适用于我的网站,加载更多项目不起作用
- getUserMedia()在使用Ajax加载时不起作用
- 同一页面上的 mysql 中的 Ajax 加载表不起作用
- 按钮在第一次成功的 ajax 数据加载后不起作用
- 谷歌将部分页面加载后自动完成不起作用 ASP.Net MVC
- 使用 jQuery .load() 加载的内容不起作用
- HTML 不加载 CSS ,刷新后一切正常.同样在移动设备上,它在首次加载时不起作用
- ng-view 中的脚本在从文件引用时不起作用(JQuery 在角度之前加载)
- JavaScript 图像加载器不起作用
- 淡出加载然后淡入不起作用
- 使用 jquery 在我的网站中加载其他网页不起作用
- 在加载javascript之前让页面加载的代码不起作用