2012-10-14 52 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(最佳解決方案),此方法非常好。

相關問題