cari

Rumah  >  Soal Jawab  >  teks badan

javascript - btn.addEventListener('klik',fn,false);

Saya mencubanya tetapi nampaknya ia tidak boleh dihantar? ? ?

我想大声告诉你我想大声告诉你2755 hari yang lalu750

membalas semua(6)saya akan balas

  • 習慣沉默

    習慣沉默2017-05-18 10:52:06

    Mengapa ramai yang tidak menyukainya? Saya fikir ia adalah masalah yang baik

    <button>click</button>
    <script>
        document.querySelector("button").addEventListener("click", fn('hello world'), false);
        
        function fn(a) {
            return function() {
                alert(a);
            }
        }
    </script>

    balas
    0
  • 黄舟

    黄舟2017-05-18 10:52:06

    Saya tidak tahu apa yang anda mahu hantar.

    Tetapi anda boleh mentakrifkan fn sebagai fungsi yang mengembalikan fungsi. Pada asasnya memenuhi keperluan...

    balas
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-18 10:52:06

    btn.addEventListener('click',function(){fn('params')});
    function fn(data) {
        alert(data)
    }

    Cuba ini?

    balas
    0
  • 巴扎黑

    巴扎黑2017-05-18 10:52:06

    document.getElementById('aaa').addEventListener('click', fn('asdadad'), false);
    
    function fn(data) {
        console.info(data);
    }

    balas
    0
  • 巴扎黑

    巴扎黑2017-05-18 10:52:06

    function foo(a, b, c) {}
    
    // 不要这样做
    setTimeout('foo(1,2, 3)', 1000)
    
    // 可以使用匿名函数完成相同功能
    setTimeout(function() {
        foo(1, 2, 3);
    }, 1000)

    balas
    0
  • 巴扎黑

    巴扎黑2017-05-18 10:52:06

    Saya tidak menjumpai prototaip fungsi addEventListener Dalam penggunaan harian, saya rasa memang begitu. Selepas
    addEventListener menangkap peristiwa pencetus, tambah () pada nama fungsi panggilan untuk memanggil .
    Kemudian

    btn.addEventListener('klik',fn,false);

    Selepas

    acara mendengar addEventListener menangkap acara klik, fungsi yang dilaksanakan ialah fn()
    addEventListener mempunyai kelemahan iaitu ia tidak boleh menambah kurungan dengan parameter, iaitu, ia tidak boleh menangkap klik dan kemudian melaksanakan fn(1,2) .
    Jadi biasanya, saya menggunakan fungsi fungsi tanpa nama(){fn(1,2)} sebagai fungsi mengikat. Kemudian kodnya menjadi seperti ini:

    btn.addEventListener('klik',function(){fn(1,2)},false)

    Selepas menangkap acara klik, fungsi yang dicetuskan ialah
    function(){fn(1,2)}()
    Anda boleh mencetuskan fungsi berparameter seperti fn(1,2).

    Saya tidak begitu biasa dengan fungsi addEventListener, dialu-alukan untuk berbincang dan membetulkan saya.

    balas
    0
  • Batalbalas