javascript - btn.addEventListener('klik',fn,false);
我想大声告诉你
我想大声告诉你 2017-05-18 10:50:06
0
6
771

Saya mencubanya tetapi nampaknya ia tidak boleh dihantar? ? ?

我想大声告诉你
我想大声告诉你

membalas semua(6)
習慣沉默

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>
黄舟

Saya tidak tahu apa yang anda mahu hantar.

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

给我你的怀抱
btn.addEventListener('click',function(){fn('params')});
function fn(data) {
    alert(data)
}

Cuba ini?

巴扎黑
document.getElementById('aaa').addEventListener('click', fn('asdadad'), false);

function fn(data) {
    console.info(data);
}
巴扎黑
function foo(a, b, c) {}

// 不要这样做
setTimeout('foo(1,2, 3)', 1000)

// 可以使用匿名函数完成相同功能
setTimeout(function() {
    foo(1, 2, 3);
}, 1000)
巴扎黑

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan