Maison > Questions et réponses > le corps du texte
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
滿天的星座2017-05-19 10:33:06
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 < code>return code> renverra false
;confirm('are you sure?')
点确定
会返回true
,点返回
会返回false
;
然后再说三种写法并没有实质上的区别,只是变着花样返回值而已:
1.你懂
2.ask() 改为 return ask();
3.三种中最好的写法
看题主在研究事件绑定,如果是给一堆有规则的元素,如列表li绑定事件,最好的办法叫事件委托
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 = "";
}
}
}
習慣沉默2017-05-19 10:33:06
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?');
}