2

jQuery コード内にドラッグ可能な要素があり、同じ要素にクリック機能があります。すべてがうまく機能しますが、要素をドラッグすると、クリック機能も実行されます。これを防ぐにはどうすればよいですか?

ここに私のHTMLがあります:

<div class="container">
  <div class="clickable"></div>
  <div id="content">A!</div>
</div>

クラス「コンテナ」の div はドラッグ可能で、 id で div を切り替える機能が.clickableあります。clickcontent

4

1 に答える 1

2

私のコメントで示唆されているように、要素(またはあなたの場合はその親)がクラスdraggingまたはstartまたは、関数を起動します。

コード:

$(document).ready(function () {

    $('.container').draggable({
        start: function (event, ui) {
            $(this).addClass('dragging');
        }
    });

    $('.clickable').click(function (event) {
        if ($(this).parent().hasClass('dragging')) {
            $(this).parent().removeClass('dragging');
        } else {
            //alert("real click");
            $("#content").toggle();
        }
    });
});

これに代わるものがあるかもしれませんが、私が使用した唯一の解決策です。

デモ: http://jsfiddle.net/IrvinDominin/N3bKb/

ドキュメント:

于 2013-08-18T16:08:41.800 に答える