Rumah > Soal Jawab > teks badan
Saya menghadapi masalah seperti itu semasa menulis JS hari ini:
function init() {
var btn = document.getElementById('sort-btn');
btn.onclick = btnHandle();
}
Di atas adalah bahagian kod JS saya Perhatikan di sini, ayat kedua dalam fungsi init, btn.onclick = btnHandle(); selepas memuat semula halaman, btnHandle Fungsi dilaksanakan secara langsung.
Kemudian saya menukar kod kepada ini
function init() {
var btn = document.getElementById('sort-btn');
btn.onclick = btnHandle;
}
Selepas mengalih keluar () dalam pernyataan btn.onclick = btnHandle(); Kenapa ni? btnHandle dan btnHandle()
漂亮男人2017-05-19 10:22:56
btn.onclick
menerima fungsi, yang bermaksud melaksanakan fungsi ini apabila btn diklik dan btnHandle()
anda bermaksud melaksanakan fungsi ini, memberikan btn .onclick< /code> ialah nilai pulangannya, dan sudah tentu ia dilaksanakan terlebih dahulu.
btn.onclick
接受一个函数,代表当 btn 被点击的时候执行这个函数,而你的btnHandle()
代表了执行这个函数,给 btn.onclick
的是他的返回值,当然就先执行了。
下面的写法就代表着,当 btn.onclick
时,执行 btnHandle
btn.onclick
dilaksanakan, fungsi btnHandle
dilaksanakan. 🎜世界只因有你2017-05-19 10:22:56
btn.onclick = btnHandle(); Kod ini bermaksud untuk menetapkan hasil pelaksanaan kepada acara klik
PHPz2017-05-19 10:22:56
Ini bermakna apabila anda memuat semula halaman, fungsi init akan dilaksanakan Selepas fungsi init dilaksanakan, apabila onclick diikat, baris kod btn.onclick = btnHandle();
adalah bersamaan dengan melaksanakan kaedah btnHandle dan. memberikan nilai pulangan kaedah kepada btn.
Dan btn.onclick = btnHandle;
bersamaan dengan btn.onclick = function(){xxxxx};
Maksudnya, rujukan pembolehubah btnHandle diberikan kepada btn.onclick
Jadi apabila peristiwa klik dicetuskan, wakil btnHandle akan dilaksanakan kaedah Fungsi