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

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

Jquery - 如何為多個元素綁定單擊事件?

Jquery - 如何為多個元素綁定單擊事件?

慕田峪7331174 2023-10-04 14:30:58
我使用 jquery 為圖像制作動畫,以制作混合圖像,單擊時滾動不同部分。我想過這樣做$("#head").click(function () {        if (headclix < 9) {            $("#head").animate({                left: "-=367px"            }, 500);            headclix++;        } else {            $("#head").animate({                left: "0px"            }, 500);            headclix = 0;        }    });    $("#eyes").click(function () {        if (eyeclix < 9) {            $("#eyes").animate({                left: "-=367px"            }, 500);            eyeclix++;        } else {            $("#eyes").animate({                left: "0px"            }, 500);            eyeclix = 0;        }    });    $("#nose").click(function () {        if (noseclix < 9) {            $("#nose").animate({                left: "-=367px"            }, 500);            noseclix++;        } else {            $("#nose").animate({                left: "0px"            }, 500);            noseclix = 0;        }    });    $("#mouth").click(function () {        if (mouthclix < 9) {            $("#mouth").animate({                left: "-=367px"            }, 500);            mouthclix++;        } else {            $("#mouth").animate({                left: "0px"            }, 500);            mouthclix = 0;        }    });我希望有更好的方法我想我可以為班級和每個班級做一些事情,但不知道如何讓它發揮作用。需要將其設為點擊事件并跟蹤每個圖像部分$(".face").each(function (i) {        if (i < 9) {            $(".face").parent().animate({                left: "-=367px"            }, 500);            i++;        } else {            $(".face").parent().animate({                left: "0px"            }, 500);            i = 0;        }    });HTML:<div id="pic_box">                <div id="head" class="face"><img src="images/headsstrip.jpg"></div>                <div id="eyes" class="face"><img src="images/eyesstrip.jpg"></div>                <div id="nose" class="face"><img src="images/nosesstrip.jpg"></div>                <div id="mouth" class="face"><img src="images/mouthsstrip.jpg"></div>  </div>此鏈接中的圖像將使您了解該功能
查看完整描述

1 回答

?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

您可以創建一個面部對象來保存每個面部部件的點擊計數,還可以創建一個處理點擊事件的函數(下面名為 clickHandler)。clickHandler 接受id并在具有該 的元素上調用適當的動畫函數id。


檢查如下:


var face = {

  "headClicks" : 0,

  "eyesClicks" : 0,

  "noseClicks" : 0,

  "mouthClicks" : 0,

  "clickHandler" : function(id) {

    if(this[id+"Clicks"] < 9) {

      animateLeft367(id);

      this[id+"Clicks"]++;

    } else {

      animateLeft0(id);

      this[id+"Clicks"] = 0;

    }

  }

}


function animateLeft367(id) {

  $("#" + id).animate({left: "-=367px"}, 500);

  console.log('animated ' + id + ' 367');

}


function animateLeft0(id) {

  $("#" + id).animate({left: "0px"}, 500);

  console.log('animated ' + id + ' 0');

}



$(".face").click(function() {

  face.clickHandler(this.id);

});

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<div id="pic_box">

    <div id="head" class="face"><img src="images/headsstrip.jpg"></div>

    <div id="eyes" class="face"><img src="images/eyesstrip.jpg"></div>

    <div id="nose" class="face"><img src="images/nosesstrip.jpg"></div>

    <div id="mouth" class="face"><img src="images/mouthsstrip.jpg"></div>

</div>


查看完整回答
反對 回復 2023-10-04
  • 1 回答
  • 0 關注
  • 125 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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