<div id='dependent'>
<input type="button" value="Add" id='btn' onclick='addfunction()' />
</div>
<script type="text/javascript">
var a = 1;
var b = 1;
var c = 1;
function addfunction() {
var c1 = document.createElement('input');
c1.type = "checkbox";
c1.id = "a" + a++;
var c2 = document.createElement('input');
c2.type = "checkbox";
c2.id = "b" + b++;
var c3 = document.createElement('input');
c3.type = "checkbox";
c3.id = "c" + c++;
var c4 = document.createElement('br');
document.getElementById("dependent").appendChild(c1);
document.getElementById("dependent").appendChild(c2);
document.getElementById("dependent").appendChild(c3);
document.getElementById("dependent").appendChild(c4);
// c1.onclick = dep();
// function dep() { alert(this.id); }
c1.onclick = function() { alert(this.id); };
}
</script>
當我打電話這樣的功能,使用Javascript - 調用函數
c1.onclick = function() { alert(this.id); };
它按預期工作。即,當我點擊複選框時,警報將顯示其ID。
但是,如果我調用這個方法,函數,
c1.onclick = dep();
function dep() { alert(this.id); }
出現警報,當我點擊「添加」按鈕(在調用調用addFunction())。爲什麼?
因爲你在呼喚它,沒有它分配給事件。 而在前一箇中,您正在附加一個函數,而不是在此時調用。 – 2013-05-10 07:46:12