2012-10-14 139 views
0

我有下面的代码复选框:Call onclick =“function(this);”负载?

<input type="checkbox" id="check" onclick="function(this);" checked="checked" /> 

但在相同的情况下,我想将在页面加载发出的呼吁。 如何手动复制“this”?

我尝试添加的onload = “功能(这);”到输入,但没有奏效。 如果我只是调用“function();”在页面加载然后该功能自然不起作用。

所以这将会是巨大的,如果我可以手动调用像一个函数:function(HTML元素[检查]);或任何“这”构成。

希望我已经说清楚了:)

+0

https://developer.mozilla.org/zh-CN/docs/DOM/element.addEventListener – elclanrs

回答

3

在你的情况,this将参照input元素。由于该元素具有一个ID,你可以很容易地获得与getElementById方法对它的引用):

yourFunction(document.getElementById("check")); 

您可以放置​​在body元素的onload属性,但理想情况下,停止使用内联事件处理程序和改为使用addEventListener方法。

0

尝试:

onload="function(document.getElementById('check'));" 
+0

这有点不必要了吗?检查是否加载了一部分html? –

+0

我想你需要检查在调用函数之前是否已经加载了dom。 –

0

你可以通过ID获取元素,并做到这一点的window.onload回调函数。

window.onload = function() { 
    yourFunction(document.getElementById('check')); 
} 
0

到我的理解程度,onload事件仅适用于<body>标签

你可能想尝试什么,是这样的:

$(document).ready(function() { 
    // Handler for .ready() called. 
}); 

来源:http://api.jquery.com/ready/

+1

在问题的任何地方都没有提及jQuery。 –

0

你可以使用这样的事情:

document.addEventListener("DOMContentLoaded", function(){ 
     document.removeEventListener("DOMContentLoaded", arguments.callee, false); 
     yourFunction(document.getElementById("check"));  
}, false); 

您必须避免使用:

window.onload = function() { 
} 

因为这样,你会在此改变连接到为onload功能(如果已安装有这种方式来为onload)。如果您想在单独的文件中使用JavaScript(最佳解决方案),此方法非常好。

相关问题