0

4 つのオプションを含むコンテキスト メニューがあり、クリックした後に 1 つのオプションを非表示または無効にしたい。これらは私のスクリプトの断片です。保存オプションをクリックした後、div をもう一度右クリックするたびに、コンテキスト メニューで [移動] オプションのみを使用できるようにします。drag は div クラスです。出来ますか?

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'
            });
        });

前もって感謝します

4

1 に答える 1

0

まずクラス drag は親要素のクラスです。したがって、「保存」要素のクラスを見つける必要があります。クラスが .save であると仮定して、クリックして削除します。これは、次のコードで行われます。

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

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

しかし、何かを「保存」した後に保存ボタンを非表示にする必要があるのはなぜですか? おそらく、ユーザーはもう一度保存したいと考えています。

実装しようとしているアプリを理解するために、デモを見ていただけると助かります。

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

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

CSSの要素をデフォルトで非表示にすることを忘れないでください

.save{visibility: none}
于 2012-04-24T11:38:03.933 に答える