1

次のコードがあります。

window.onload = function () {
'use strict';

var alcohol = document.getElementById('alcohol'); 

var changeImage = function (event) {
    alcohol.src = "image/alcohol3.jpg";
};

var changeBack = function (event) {
    alcohol.src = "image/alcohol.jpg";
};

addHandler(alcohol, "click", changeImage);
// addHandler(alcohol, "mouseout", changeBack);

2 回目のクリック イベントで画像を元に戻すにはどうすればよいですか? 現時点では、機能していません。

4

3 に答える 3

1

changeImage関数を次のように変更します。

var changeImage = function (event) {
    if (alcohol.src != "image/alcohol3.jpg"){
       alcohol.src = "image/alcohol3.jpg";
    }
    else
    {
       alcohol.src = "image/alcohol.jpg";
    }
};
于 2013-04-08T14:35:32.717 に答える
0

トグルを使用できます:

$("#alcohol").toggle(
  changeImage() ,
  changeBack()
);
于 2013-04-08T14:36:30.190 に答える
0

そのようなクロージャーを使用してそうすることができます:

var changeImage = function() {
    function a(event) {
        alcohol.src = "image/alcohol3.jpg";
        event.srcElement.onclick = b;
    }
    function b(event) {
        alcohol.src = "image/alcohol.jpg";
        event.srcElement.onclick = a;
    }
    return a;
}
addHandleaddHandler(alcohol, "click", changeImage());

まずa、ハンドラーとして割り当てられるのは関数であり、イベントが発生するたびに、ハンドラーは と の間で切り替えられaますb

于 2013-04-08T14:43:26.357 に答える