cari

Rumah  >  Soal Jawab  >  teks badan

javascript onclick

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()

世界只因有你世界只因有你2791 hari yang lalu627

membalas semua(3)saya akan balas

  • 漂亮男人

    漂亮男人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

    Tulisan berikut bermakna apabila btn.onclick dilaksanakan, fungsi btnHandle dilaksanakan. 🎜

    balas
    0
  • 世界只因有你

    世界只因有你2017-05-19 10:22:56

    btn.onclick = btnHandle(); Kod ini bermaksud untuk menetapkan hasil pelaksanaan kepada acara klik

    balas
    0
  • PHPz

    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

    balas
    0
  • Batalbalas