javascript - La différence entre écrire directement Ask() et l'appeler en cliquant sur l'événement onclick
世界只因有你
世界只因有你 2017-05-19 10:31:06
0
2
544
window.onload=init;
function init(){
    var x=document.getElementsByTagName('a');
    for(var i in x){
        x[i].onclick=function(){
            return confirm('are you sure?');
        }
    }
}

Peut être exécuté avec succès

Mais l'écrire sous la forme suivante ne fonctionne pas correctement. Le retour false n'est pas capturé lorsque vous cliquez sur Annuler, le lien saute toujours. Pourquoi cela ?

La fonction est la suivante :

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?');
}

Écrit sous la forme suivante peut fonctionner correctement :

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?');
}

Veuillez me dire la différence entre les trois méthodes d'écriture

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

répondre à tous(2)
滿天的星座

Tout d'abord, la personne qui pose la question doit savoir que confirm('are you sure?') et cliquer sur Confirm renverra true, et cliquer sur return code> renverra false ;confirm('are you sure?')确定会返回true,点返回会返回false;

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

另外

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

    Ensuite, permettez-moi de dire qu'il n'y a pas de différence substantielle entre les trois façons d'écrire, elles changent simplement la valeur de retour :
    1 Vous savez
    2 Ask() est modifié en return Ask();3. Trois. La meilleure façon d'écrire
  • Aussi

  • Vérifiez que la personne qui pose la question étudie la liaison d'événements. Si vous souhaitez lier des événements à un groupe d'éléments réguliers, comme une liste li, le meilleur moyen est d'appeler la délégation d'événements :

<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 = "";
    }
  }
}
  • Une fois que vous aurez compris le mécanisme événementiel de js, la capture et le bouillonnement, vous y serez presque.
  • 🎜🎜Compatibilité finale avec IE : attachEvent, standard : addEventListener🎜🎜 🎜
    習慣沉默

    La deuxième option est que vous n'avez aucun retour

    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?');
    }
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal