0

でイメージを変更mousedownし、 で最初のイメージに戻そうとしていmouseupます。イメージは で変化してmousedownいますが、 で最初のイメージに戻っていませんmouseup。関数内のアラートがmouseup表示されない... 何が問題なのですか?

$(#mydivid).bind('mousedown', function() {
        document.getElementById(mydivid).style.backgroundImage = "url(Images/new.png)";
        alert("mousedown");
    });


    
    $(#mydivid).bind('mouseup', function() {
        document.getElementById(mydivid).style.backgroundImage = "url(Images/initial.png)";
alert("mouseup");
    });

複数のイベントを同じ div にバインドすると、最初のイベント ハンドラーが機能し、他のイベント ハンドラーは無視されることがわかりました。すべてのイベントが確実に処理されるようにするにはどうすればよいですか?

4

1 に答える 1

1

アラートを取り除く必要があります。それが問題の原因です。

私が気付いたもう 1 つのことは、「#mydivid」が引用符で囲まれていないことです。

また、jquery 1.7 以降を使用している場合は、「bind」ではなく「on」を使用することをお勧めします。

jQuery 1.7 の時点で、.on() メソッドは、イベント ハンドラーをドキュメントにアタッチするための推奨メソッドです。以前のバージョンでは、.bind() メソッドを使用して、イベント ハンドラーを要素に直接アタッチしていました。

ソース: http://api.jquery.com/bind/

JQuery には、要素の CSS プロパティを変更するメソッドもあります。背景を変えるためにもそれを考慮することができるかもしれません。

http://api.jquery.com/css/


しかし、私が言ったように、アラートを削除すると、問題なく動作するはずです。次の例を参照してください。

http://jsfiddle.net/fS9Ct/1/

于 2012-04-18T08:41:14.990 に答える