亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于JS里點擊函數,里面在內嵌點擊函數,取值問題!求解惑啊,大神!

關于JS里點擊函數,里面在內嵌點擊函數,取值問題!求解惑啊,大神!

慕村5492868 2018-08-08 17:56:44
<div class="box">111111</div> <div class="box">111111</div> <div class="box">111111</div> <div class="btn">點擊事件</div> <script> var ones = ["實驗1","實驗2","實驗3"] for(let i=0;i<ones.length;i++){ $(".box")[i].onclick = function(){ $(".btn").click(function(){ console.log(ones[i]); }) } } </script>這里描述一下問題,正常來說我點擊頁面上的111,在點擊頁面上的(點擊事件這個按鈕),就會取到數組里對應的值(這里是沒問題的).但是如果我點擊其中一個111,在點擊另外一個111,最后再點擊觸發console的那個點擊事件。就會把之前點擊那個值一起獲取,打印出2個值。這里為什么會把上一次的值存進去了,難道2次點擊事件創建了2個btn函數,同時里面的值存進去2個地址?不明白!
查看完整描述

1 回答

?
業余奶茶品鑒師

TA貢獻260條經驗 獲得超388個贊

$(".box")[i].onclick?=?function(){
????$(".btn").click(function(){
????????console.log(ones[i]);
????})
}

這個地方寫的有問題,

$(".box")[i].onclick?=?function(){}?就已經給每個div綁定了點擊事件,沒必要再寫里面的

改成

$(".box")[i].onclick?=?function(){
????console.log(ones[i]);
}


查看完整回答
反對 回復 2018-08-08
  • 慕村5492868
    慕村5492868
    您好,我再在里面寫一層點擊事件是因為我這邊有一個彈窗,先點擊外面的box,在出來彈窗,在點擊彈窗里面的btn按鈕,第二個點擊時間里需要那數組里面的值做判斷,然后就出現我說的那個問題,先點擊其中一個,再點擊另外一個,然后就會把第一次點擊的值存起來,這樣就會造成判斷2次的問題,第一判斷會錯,第二次判斷會對!
  • 業余奶茶品鑒師
    業余奶茶品鑒師
    因為你嵌套了點擊事件,所以你點擊第二個的時候,會先觸發第一個div的點擊,然后才是第二個,所以會出錯
  • 慕村5492868
    慕村5492868
    我試了一下,點擊第二個點擊事件并不會觸發第一個點擊事件.
  • 1 回答
  • 0 關注
  • 1421 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號