javascript - Perbezaan antara menulis ask() secara langsung dan memanggilnya apabila mengklik pada acara onclick
世界只因有你
世界只因有你 2017-05-19 10:31:06
0
2
519
window.onload=init;
function init(){
    var x=document.getElementsByTagName('a');
    for(var i in x){
        x[i].onclick=function(){
            return confirm('are you sure?');
        }
    }
}

Boleh dijalankan dengan jayanya

Tetapi menulisnya dalam bentuk berikut tidak berfungsi dengan betul. Pengembalian palsu tidak ditangkap.

Fungsinya adalah seperti berikut:

window.onload=init;
function init(){
    var x=document.getElementsByTagName('a');
    for(var i in x){
        x[i].onclick=function(){
        ask();
        }
    }
}
function ask(){
    return confirm('are you sure?');
}

Ditulis dalam bentuk berikut boleh berjalan dengan betul:

window.onload=init;
function init(){
    var x=document.getElementsByTagName('a');
    for(var i in x){
        x[i].onclick=ask;
    }
}
function ask(){
    return confirm('are you sure?');
}

Sila beritahu saya perbezaan antara tiga kaedah penulisan

世界只因有你
世界只因有你

membalas semua(2)
滿天的星座

Pertama sekali, penyoal mesti tahu bahawa confirm('are you sure?') dan klik Confirm akan mengembalikan true, klik kembali code> akan mengembalikan false;confirm('are you sure?')确定会返回true,点返回会返回false;

然后再说三种写法并没有实质上的区别,只是变着花样返回值而已:
1.你懂
2.ask() 改为 return ask();
3.三种中最好的写法

另外

  • 看题主在研究事件绑定,如果是给一堆有规则的元素,如列表li绑定事件,最好的办法叫事件委托

    Kemudian saya katakan bahawa tidak ada perbezaan yang ketara antara tiga cara penulisan, ia hanya menukar nilai pulangan:
    1 Anda tahu
    2 >3. Cara terbaik untuk menulis
  • Selain itu

  • Pastikan penyoal sedang mengkaji pengikatan acara Jika anda ingin mengikat acara kepada sekumpulan elemen biasa, seperti senarai li, cara terbaik ialah memanggil delegasi acara:

  • .
<ul id="ul">
  <li>aaaaaaaa</li>
  <li>bbbbbbbb</li>
  <li>cccccccc</li>
</ul>
window.onload = function(){
  var oUl = document.getElementById("ul");
  var aLi = oUl.getElementsByTagName("li");

  for(var i=0; i<aLi.length; i++){
    aLi[i].onmouseover = function(){
      this.style.background = "red";
    }
    aLi[i].onmouseout = function(){
      this.style.background = "";
    }
  }
}
  • Sebaik sahaja anda memahami mekanisme acara js, menangkap dan menggelegak, anda akan hampir sampai.
  • 🎜🎜Keserasian akhir dengan IE: attachEvent, standard: addEventListener🎜🎜 🎜
    習慣沉默

    Pilihan kedua ialah anda tiada pulangan

    window.onload=init;
    function init(){
        var x=document.getElementsByTagName('a');
        for(var i in x){
            x[i].onclick=function(){
            return ask();
            }
        }
    }
    function ask(){
        return confirm('are you sure?');
    }
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan