2012-04-24 3 views
0

私は4つのオプションを持つコンテキストメニューを持っています、それをクリックした後に1つのオプションを隠すか無効にしたいと思います。これらは私のスクリプト断片です。保存オプションをクリックすると、divを右クリックするたびに、コンテキストメニューの[移動]オプションだけが必要になります。ドラッグはdivクラスです。出来ますか?javascriptのコンテキストメニューをクリックした後で、選択を隠すか無効にするにはどうすればいいですか?

var menu = [ 
      {'Move':function(menuItem,menuObject){ 
        $(this).css({'backgroundColor':'red'}); 
        return true; 
       } 
      }, 
      {'Save':function(menuItem,menuObject){ 
        $(this).css({'backgroundColor':'blue'}); 
        return true; 
       } 
      } 
     ]; 

$(function() { 
      $('.drag').contextMenu(menu,{ 
       showSpeed:500, 
       hideSpeed:500, 
       showTransition:'fadeIn', 
       hideTransition:'fadeOut' 
      }); 
     }); 

すべてのクラスのドラッグの事前

+0

を忘れてしまいました! btw、そのわずか2つのオプションです。入力ミスを申し訳ありません。 : – jovenrp

+1

デモページ、スクリーンショット、またはその他のコードを提供してください。あなたが話していることについて混乱しています –

答えて

0

初のおかげで、親要素のクラスです。 "save"要素のクラスを見つける必要があります。クラスが.saveであると仮定し、クリックして削除します。

$(".save").click(function{ 
$(this).remove(); 
}) 

もう一度右クリックすると、要素が再び作成され、上記の機能が失われます。私はそれを見ることができるので、これはあなたの問題です。

しかし、なぜ「保存」された後に保存ボタンを非表示にする必要がありますか?たぶんユーザーは再び保存したいと思うかもしれません。

実装しようとしているアプリを理解するためにデモを見ることができれば助かります。

変更された(ドラッグされた)要素に対してのみルールを適用しようとすると、要素の位置を保持するクラスまたは変更された要素にフラグを設定する必要があります。 その後、jqueryセレクタを介してフラグが立てられた(変更された)ものだけを操作できます。

if ((.drag).hasClass('.changed')){ 
    $(".save").css({"visibility: visible"}); 
} 

いけないああ、CSSにはデフォルトで要素を非表示にする

.save{visibility: none} 
+0

jqueryプラグインを使用している場合、ps投稿 – hgtaz

+0

jquery.contextmenu.jsを使用しています。私はクラス名をドラッグするdivを持っています。そのdivが右クリックされると、「移動して保存」の2つのオプションを持つコンテキストメニューが表示されます。保存オプションをクリックした後、コンテキストメニューの[保存]オプションを非表示にしたいので、表示されません。 – jovenrp

関連する問題