3

DynaTree JavaScriptツリーを使用していて、それを変更しています。具体的には、ノードのタイプに応じて複数のコンテキストメニューを追加しようとしています。

基本的に私のアイデアは、コンテキストメニューでMVC(2)コントローラーにajaxリクエストを起動し、この情報をJSONとして渡し、c#でアクセスできるクラスを作成するために使用することでした。

ここで約500件の投稿を行った後、これで問題なく動作しました。タイプに応じて適切なコンテキストメニューを選択するために、JSを再度変更する必要があります。

私のリストは次のようになります

<div id="tree">
    <ul>

      <li id="'ID':1,'TYPE':1" title="Look: a tool tip!">item1 with key and tooltip</li>
      <li id="'ID':2,'TYPE':2" class="activate">item2: activated on init</li>
      <li id="'ID':3,'TYPE':3" class="folder">Folder with some children
        <ul>
          <li id="'ID':4,'TYPE':1">Sub-item 3.1</li>
          <li id="'ID':5,'TYPE':1">Sub-item 3.2</li>
        </ul>
      </li>
      <li id="'ID':6,'TYPE':1" class="expanded">Document with some children (expanded on init)
        <ul>
          <li id="'ID':7,'TYPE':1'">Sub-item 4.1</li>
          <li id="'ID':8,'TYPE':1'">Sub-item 4.2</li>
        </ul>
        </li>
      <li id="'ID':9,'TYPE':1" class="lazy folder">Lazy folder</li>
    </ul>
  </div>

そして、IDを返し、jQuery.parseJSONを使用してMVCに送信します。

私が理解していないJSはここにあります:

function bindContextMenu(span) {
    // Add context menu to this node:
    debugger;

    $(span).contextMenu({ menu: "myMenu1" }, function (action, el, pos) {
      var node = $.ui.dynatree.getNode(el).toString();
      node = node.replace(/'/g, '\"');
      node = jQuery.parseJSON('{' + node + '}');

      $.ajax({
        type: "POST",
        url: "/TreeView/Click/",
        data: { ID: node.ID, TYPE: node.TYPE },
        error: function (request) { $("#message").html("error"); },
        success: function (result) { $("#message").html("Success - " + result); }
      })
    });
  };

この行-$(span).contextMenu({menu: "myMenu1"}、function(action、el、pos){

コンテキストメニューを設定するだけでなく、コンテキストメニューがクリックされたときにも起動するようです。手がかりがないので、誰かがグーグルにいくつかのキーワードを提供してくれたら嬉しいです。

前もって感謝します

4

1 に答える 1

3

.contextMenuプラグインのように見えますが、それがどのプラグインであるかを正確に知らなければ、決定的な答えを出すのは困難です. ただし、プラグインが 2 つの引数を取る初期化のように見えます。

  1. objectセットアップパラメータを含む - これはプラグインにとってかなり標準的です
  2. メニューがアクティブ化されたときに呼び出される関数 (おそらく)。
于 2012-11-28T14:45:05.843 に答える