数码资讯
解决在Javascriptfor循环中嵌套的单击事件的问题
首先来看一下代码的下面部分: 对于(var i = 0;i < 10;i + +){ $(# UL)。Bind(听到咔哒声,函数()){ 警报(一) }) } 对于这个代码,当单击ID是UL的一个元素时,它会弹出10个10。为什么10个10会弹出 首先,在这段代码中的单击事件不是绑定的事件,jQue
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
首先来看一下代码的下面部分:
对于(var i = 0;i < 10;i + +){
$(# UL)。Bind(听到咔哒声,函数()){
警报(一)
})
}
对于这个代码,当单击ID是UL的一个元素时,它会弹出10个10。为什么10个10会弹出
首先,在这段代码中的单击事件不是绑定的事件,jQuery绑定事件,所以有约束力的事件和一般事件之间的差异。常见的事件,如果你添加多个点击事件,在一定的元素,最后一个将覆盖前面所有的单击事件,只是最后单击事件的执行;在绑定的事件,是不一样的,在相同的元素,更结合的单击事件。将所有执行。也就是说,在正常的事件onclick只支持单一的事件,它将覆盖其他的onclick事件。事件点击可以添加多个事件而不用担心被覆盖。你可以想象当你点击ID作为UL的元素时,你肯定会弹出10个弹出窗口。
如果您不理解它,那么在代码变形后就很容易理解它。
事实上,上述代码可以变形成以下形式:
/ i = 0
$(# UL)。Bind(听到咔哒声,函数()){
警报(一)
})
/ i = 1
$(# UL)。Bind(听到咔哒声,函数()){
警报(一)
})
......
/ i = 10
$(# UL)。Bind(听到咔哒声,函数()){
警报(一)
})
扩展:下面的代码是对上面代码的比较,进一步解释了常见事件和事件绑定的区别
对于(var i = 0;i < 10;i + +){
document.getelementbyid('ul)。Onclick =函数(){
警报(一)
}
}
运行结果:10弹出
显然,当单击事件触发时,弹出窗口会弹出10个。那么,可能会再次出现问题吗为什么是10个10不应该是0, 1, 2,3…10为了解决这个问题,原始代码可以再次变形:
var I=0
$(# UL)。Bind(听到咔哒声,函数()){
警报(一)
})
我= 1
$(# UL)。Bind(听到咔哒声,函数()){
警报(一)
})
......
I = 9
$(# UL)。Bind(听到咔哒声,函数()){
警报(一)
})
在原来的代码转换成这个之后,很明显,最终的i值是9,但是根据for循环的原理,在循环到i是9之后,我将执行++,然后我将判断10。在这个时候,条件不再满足,所以最终的周期将被终止,而最终我的值是10。然后很自然地理解为什么最后的结果是10个窗口与结果10。
概要:这个代码看起来简单,但包含了一些知识点,如事件绑定、普通事件和for循环。
以上是本文的全部内容,希望本文的内容能给大家的学习或工作带来一定的帮助,同时也希望能给予更多的支持!
对于(var i = 0;i < 10;i + +){
$(# UL)。Bind(听到咔哒声,函数()){
警报(一)
})
}
对于这个代码,当单击ID是UL的一个元素时,它会弹出10个10。为什么10个10会弹出
首先,在这段代码中的单击事件不是绑定的事件,jQuery绑定事件,所以有约束力的事件和一般事件之间的差异。常见的事件,如果你添加多个点击事件,在一定的元素,最后一个将覆盖前面所有的单击事件,只是最后单击事件的执行;在绑定的事件,是不一样的,在相同的元素,更结合的单击事件。将所有执行。也就是说,在正常的事件onclick只支持单一的事件,它将覆盖其他的onclick事件。事件点击可以添加多个事件而不用担心被覆盖。你可以想象当你点击ID作为UL的元素时,你肯定会弹出10个弹出窗口。
如果您不理解它,那么在代码变形后就很容易理解它。
事实上,上述代码可以变形成以下形式:
/ i = 0
$(# UL)。Bind(听到咔哒声,函数()){
警报(一)
})
/ i = 1
$(# UL)。Bind(听到咔哒声,函数()){
警报(一)
})
......
/ i = 10
$(# UL)。Bind(听到咔哒声,函数()){
警报(一)
})
扩展:下面的代码是对上面代码的比较,进一步解释了常见事件和事件绑定的区别
对于(var i = 0;i < 10;i + +){
document.getelementbyid('ul)。Onclick =函数(){
警报(一)
}
}
运行结果:10弹出
显然,当单击事件触发时,弹出窗口会弹出10个。那么,可能会再次出现问题吗为什么是10个10不应该是0, 1, 2,3…10为了解决这个问题,原始代码可以再次变形:
var I=0
$(# UL)。Bind(听到咔哒声,函数()){
警报(一)
})
我= 1
$(# UL)。Bind(听到咔哒声,函数()){
警报(一)
})
......
I = 9
$(# UL)。Bind(听到咔哒声,函数()){
警报(一)
})
在原来的代码转换成这个之后,很明显,最终的i值是9,但是根据for循环的原理,在循环到i是9之后,我将执行++,然后我将判断10。在这个时候,条件不再满足,所以最终的周期将被终止,而最终我的值是10。然后很自然地理解为什么最后的结果是10个窗口与结果10。
概要:这个代码看起来简单,但包含了一些知识点,如事件绑定、普通事件和for循环。
以上是本文的全部内容,希望本文的内容能给大家的学习或工作带来一定的帮助,同时也希望能给予更多的支持!
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。