最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript的for循環(huán)中嵌套一個點擊事件的問題解決

 更新時間:2017年03月03日 09:21:47   作者:陌年古城  
本文主要介紹了JavaScript的for循環(huán)中嵌套一個點擊事件點擊一次彈出多個相同的值的解決方法,具有很好的參考價值。下面跟著小編一起來看下吧

先看下面一段代碼:

for(var i=0; i<10; i++) {
 $('#ul').bind('click', function() {
  alert(i)
 })
}

對于這段代碼,當點擊Id為“ul”的元素時,會出現彈出10個10。為什么會彈出10個10呢?

首先,這段代碼中的點擊事件不是綁定事件,是jQuery的綁定事件,那么綁定事件和普通事件是有區(qū)別的。普通事件中,如果對某一個元素添加多個點擊事件,那么,最后一個將會把前面的所有點擊事件全部覆蓋,只能執(zhí)行最后一個點擊事件;而在綁定事件中,則不一樣,在同一個元素上,即使綁定再多的點擊事件,都會全部執(zhí)行。也就是說,普通事件中的onclick只支持單個事件,會被其他onclick事件覆蓋,而事件綁定中的點擊事件可以添加多個事件而不用擔心被覆蓋。那么,可想而知,當點擊Id為“ul”的元素時,一定會彈出10個彈窗。

如果還是不太明白,那么對代碼進行變形之后,就很容易理解了。

其實,上面的那段代碼可以變形為以下形式:

// i=0時
$('#ul').bind('click', function() {
  alert(i)
 })
// i=1時
$('#ul').bind('click', function() {
  alert(i)
 })
 
......
 
// i=10時
$('#ul').bind('click', function() {
  alert(i)
 })

擴展:下面這段代碼是對上面的那段原始代碼的比較,進一步說明普通事件和事件綁定的區(qū)別

for(var i=0; i<10; i++) {
 document.getElementById('ul').onclick = function() {
  alert(i)
 }
}

運行結果:彈出一個10

很顯然,當觸發(fā)點擊事件時,會彈出10個彈窗。那么,可能又會有疑問?為什么會是10個10呢?不應該是0,1,2,3...10嗎?為了解決這個疑惑,可對原始代碼進行再次變形:

var i=0
 
$('#ul').bind('click', function() {
  alert(i)
 })
i=1
$('#ul').bind('click', function() {
  alert(i)
 })
 
......
 
i = 9
$('#ul').bind('click', function() {
  alert(i)
 })

原始代碼,變形為這樣之后,很顯然,最終i的值是9,但是根據for循環(huán)的原理,在循環(huán)到i為9之后,會執(zhí)行i++,之后再去判斷i<10,此時已不滿足條件,所以終止循環(huán),最終i值為10。那么自然也就明白,為什么最終結果是10個結果為10的彈窗。

總結:這段代碼看似簡單,卻涵蓋了事件綁定、普通事件、for循環(huán)等多個知識點。

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關文章

  • 詳解ES6 系列之異步處理實戰(zhàn)

    詳解ES6 系列之異步處理實戰(zhàn)

    這篇文章主要介紹了詳解ES6 系列之異步處理實戰(zhàn),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • JS基于FileSaver.js插件實現文件保存功能示例

    JS基于FileSaver.js插件實現文件保存功能示例

    這篇文章主要介紹了JS基于FileSaver.js插件實現文件保存功能,結合實例形式演示了FileSaver.js插件的具體使用技巧,需要的朋友可以參考下
    2016-12-12
  • 利用javascript中的call實現繼承

    利用javascript中的call實現繼承

    利用javascript中的call實現繼承...
    2007-01-01
  • js實現跨域訪問的三種方法

    js實現跨域訪問的三種方法

    這篇文章主要介紹了js實現跨域訪問的三種方法,包括基于iframe實現跨域、基于script標簽實現跨域以及后臺代理方式 ,感興趣的小伙伴們可以參考一下
    2015-12-12
  • Chrome擴展頁面動態(tài)綁定JS事件提示錯誤

    Chrome擴展頁面動態(tài)綁定JS事件提示錯誤

    開發(fā)Chrome擴展時,頁面的popup.html中需要js的時候,直接將JS寫在動態(tài)綁定JS事件會提示錯誤,下面有個不錯的解決方法,大家可以參考下
    2014-02-02
  • JavaScript函數的使用教程

    JavaScript函數的使用教程

    這篇文章主要介紹了JavaScript函數的使用教程,JavaScript函數是被設計為執(zhí)行特定任務的代碼塊。JavaScript函數會在某代碼調用它時被執(zhí)行。文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • javascript表單驗證 - Parsley.js使用和配置

    javascript表單驗證 - Parsley.js使用和配置

    大家還記得我們曾經介紹過的表單驗證jquery插件jquery.validationEngine吧;天介紹的Parsley同樣也可以幫助你只使用簡單的配置即可實現表單驗證功能,基于它的強大DOM-API,感興趣的你可以不要錯過了哦
    2013-01-01
  • js與jQuery 獲取父窗、子窗的iframe

    js與jQuery 獲取父窗、子窗的iframe

    本篇文章介紹了js與jQuery 獲取父窗、子窗的iframe。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-12-12
  • js字符串拼接的4種常見方法

    js字符串拼接的4種常見方法

    JavaScript中,字符串拼接是非常常見的操作,拼接字符串有很多種方式,這篇文章主要給大家介紹了關于js字符串拼接的4種常見方法,需要的朋友可以參考下
    2023-07-07
  • javascript相等運算符與等同運算符詳細介紹

    javascript相等運算符與等同運算符詳細介紹

    不管是java、c++、php都有相等運算符與等同運算符,當然javasript也不例外,下面介紹一下
    2013-11-11

最新評論

固原市| 大埔区| 阿克陶县| 武安市| 富民县| 汶上县| 郸城县| 缙云县| 鲁甸县| 定结县| 海晏县| 宜州市| 吉木乃县| 鹿泉市| 新闻| 郸城县| 游戏| 宁国市| 宝山区| 绥江县| 蓝田县| 嘉祥县| 晋宁县| 西贡区| 华池县| 牡丹江市| 八宿县| 云和县| 张北县| 福海县| 卓尼县| 额尔古纳市| 贵溪市| 永寿县| 开原市| 墨江| 玉田县| 夏邑县| 陆河县| 崇明县| 甘孜|