0

私のメインページには、私が作成したカスタムツールチップがあります。これは、非表示の情報を含む単なる div であり、ボタンを選択するとメニューが開きます。ドキュメント内の他の場所をクリックすると、その div が非表示になります。そのコードは次のようになります。

$(document).on("click", function() {
    $("#supTooltip").fadeOut("fast", "linear");
});
$("#supervisorButton").on("click", function(e) {
    e.stopPropagation();
    return false;
});

これをクリックすると、メニューで複数の異なるオプションをクリックできます。ダイアログが表示されます。そのダイアログには、フィルター用の同様のメニューもあります。コードは同じように見えますが、プルされる ID が異なるだけです。

$(document).on("click", function() {
    $("#filtersDiv").fadeOut("fast", "linear");
});
$("#filtersButton").on("click", function(e) {
    e.stopPropagation();
    return false;
});

私はこれを行うことはできませんか?クリックイベントをオフにしようとしましたが、うまくいかないようです。これをコードの 2 回目の繰り返しの上で使用しました。

$(document).off("click");

どんな助けでも素晴らしいでしょう。私は過去数時間、これで頭を悩ませてきました。

編集1:

jsFiddle がリクエストされました。http://jsfiddle.net/yDmAK/1/

それは機能しますが、違いは、menu2 関数が menu1 関数と同じファイルにないことです。ダイアログは、別のファイルからプルするために、load イベントを使用して別のファイルにデータを取り込みます。

それが問題を引き起こしている可能性がありますか?

4

1 に答える 1

0

別のスレッドで別のユーザーが投稿した別の方法を使用することにしました。

$(document).mouseup(function (e)
{
    var container = $("YOUR CONTAINER SELECTOR");

    if (container.has(e.target).length === 0)
    {
        container.hide();
    }
});

これはトリックを行うようで、適切に機能しています。

于 2013-03-13T22:02:11.393 に答える