1

これがjsfiddleです:

http://jsfiddle.net/FVuvC/

jqueryでは、緑色の三角形がコンテナを引き出し、次に赤色の三角形がコンテナを押し戻しますが、それを行うには2回のクリックが必要です。両方の三角形を1回クリックするだけで済むようにするにはどうすればよいですか?

$(function () {
    $("#clickmeright, #clickmeleft").toggle(function () {
        $(this).parent().animate({
            right: '0px'
        }, {
            queue: false,
            duration: 500
        });
    }, function () {
        $(this).parent().animate({
            right: '-170px'
        }, {
            queue: false,
            duration: 500
        });
    });
});

サイトで他の質問を調べましたが、まだわかりません。そのような:

JQuery Toggleの問題、2回のクリックが必要

2回のクリックが必要なトグル機能

私が彼らから得た最も多くのことは、代わりにトグルをクリック機能に変更しなければならないということです。だから、それは私がこのことを理解しているところをあなたに示すはずです。また、誰かがこれを学ぶためのいくつかの良い情報源をお勧めできますか?

4

1 に答える 1

1

これは、イベントハンドラーが両方の要素ではなく、それぞれで別々に関数を切り替えるために発生します($('#e1,#e2').click(function)e1をクリックすると、両方の要素でイベントが発生しないかどうか疑問に思わないでしょう)。回避策として、次のようにします。

$(function () {
    var $clickmeright=$("#clickmeright");
    $("#clickmeleft").click(function() {
        $clickmeright.click();
    })
    $clickmeright.toggle(function () {
        $(this).parent().animate({
            right: '0px'
        }, {
            queue: false,
            duration: 500
        });
    }, function () {
        $(this).parent().animate({
            right: '-170px'
        }, {
            queue: false,
            duration: 500
        });
    });
});

http://jsfiddle.net/oceog/FVuvC/1/

于 2013-01-27T04:08:47.550 に答える