0

JQuery を使用して、検索バー付きの Javascript コンテキスト メニューを作成したいと考えています。検索バーを使用すると、ユーザーはコンテキスト メニューを使用して実行するアクションを検索できます。検索メニューは「切り取り」、「コピー」、「貼り付け」などの結果を返します HTML5 と JavaScript を使用してこれを実装する方法はありますか?

jsfiddle の未完成の実装は次のとおりです: http://jsfiddle.net/fELma/292/

また、event.target を使用して div のすべての子要素を選択する方法をまだ理解していません。

$(document).bind("click", function(event) {
    if (!$(event.target).is(".custom-menu")) { //how can I select all the child elements of .custom-menu?
        $("div.custom-menu").hide();
    }
});​
4

1 に答える 1

1

検索バーを使用すると、ユーザーはコンテキスト メニューを使用して実行するアクションを検索できます。

jQuery UIは、 Autocomplete ウィジェットだけでなく、他の多くの種類のユーザー インターフェイス コントロールを実装しています。現在選択されている要素に対して可能なアクションを決定し、それに応じてウィジェットを更新するには、コードを記述する必要があります。

検索メニューは、「切り取り」、「コピー」、「貼り付け」などの結果を返します。

jQuery を使用してクライアントのクリップボードにテキストをコピーする方法を参照してください。に、Internet Explorer 以外のブラウザでシステム クリップボードにアクセスすることに対するセキュリティ制限が記載されています。制限を回避するために Flash を使用する人もいますが、あなたの場合は、「切り取り」または「コピー」メニュー項目の上に Flash アプレットを重ねる必要があります。「貼り付け」の制限を回避する方法がわかりません。

独自のクリップボードを実装することもできますが、サイトと他のアプリケーション間でコピー アンド ペーストしようとするユーザーを混乱させる可能性があります。カスタム メニューの代わりにCtrl+CCtrl+を使用することを覚えておく必要があります。V

また、event.target を使用して div のすべての子要素を選択する方法をまだ理解していません。

セレクターとして使用する.custom-menu, .custom-menu > *か、(直接の子だけでなく) すべての子孫を含めたい場合は、.custom-menu *.

あなたの状況では、自分で event.target をチェックする代わりに.on()を使用できます。

$(document).on("click", ".custom-menu, .custom-menu *", function(event) {
    $("div.custom-menu").hide();
});​

(1.7 より古いバージョンの jQuery では、代わりに.delegate()を使用してください。)

于 2012-12-15T02:08:56.930 に答える