2016-06-23 5 views
1

JQuery-UIコンテキストメニューのトリガとして機能するDIVタグの属性にアクセスしようとしていますが、苦労しています。JQuery-UI-ContextMenuトリガの属性をメニュー構造に渡す

学校の文脈では、私はDIVのテキストに学生の名前をつけますが、HTML5のデータピッド属性、または必要であればDIVのIDを使用してID番号も渡す必要があります。

私はどちらにもアクセスすることができず、いくつかのガイダンスに本当に感謝しています。

ContextMenuとJQuery 3.0.0の現代バージョン1.12.0を使用しています。

下記のコードをご覧ください。前もって感謝します。

<div id="TheIDIWantToAccess" data-pid="AnotherWantedVariable" class="hasStudentContextMenu"><p>The inner text which is showing fine using $target.text()</p></div> 

    <script type="text/javascript"> 
    $(document).ready(function() { 
     $("#studentContextMenus").contextmenu({ 

      delegate: ".hasStudentContextMenu", 
      preventContextMenuForPopup: true, 
      menu: [] 
      ,beforeOpen: function(event, ui) { 
       var $menu = ui.menu, 
        $target = ui.target; 

       $(this).contextmenu("replaceMenu", 
        [ 
         {title: "<b>" + $target.text() + "</b>"} 
         ,{title: "Award" 
          ,children: [ 
          {title: "1_Point", action: function(event, ui) { alert("1 point awarded: " + $target.text() + " (" + $target.id() + ")");}}, 
          {title: "2_Points", action: function(event, ui) { alert();} }, 
          ] 
         } 
        ] 
       ); 
      } 
      ,select: function(event, ui) { 
       //alert("select " + ui.target.attr("id")); 
      } 
     }); 
    }); 
</script> 

答えて

0

$target.id()は有効なjQueryメソッドではありません。 代わりに$target.attr("id")を使用してください。 .data()メソッドもあります。

+0

お返事ありがとうございます。その長さのために、別の質問回答として私の返信を参照してください。 – Richard

+0

元の質問を編集する方が良いかもしれません。とにかく:あなたのhtmlマークアップと関連があるかもしれません。あなたは例としてjsFiddleやPlunkerを設定できますか? http://jsfiddle.net/mar10/6o3u8a88/ – mar10

+0

ありがとうございます。 DIVがDataTablesディスプレイのAJAXデータコールの背後から配信されるというのは問題だと思われます。それは、DOMの観点からはアクセスできないが、解決策はまだ見つかっていないこととは何か関係があります。 – Richard

関連する問題