2014-04-15 39 views
0

我試圖讓一個點擊事件關閉使用選擇器的插件的手動。在選擇器上觸發點擊事件

插件設置。

$(function() 
      { 
       $.contextMenu({ 
        selector: '.context-menu-one', 
        callback: function (key, options) 
        { 
         var m = "clicked: " + key; 
         window.console && console.log(m) || alert(m); 
        }, 
        items: { 
         "edit": { name: "Edit", icon: "edit" }, 
         "cut": { name: "Cut", icon: "cut" }, 
         "copy": { name: "Copy", icon: "copy" }, 
         "paste": { name: "Paste", icon: "paste" }, 
         "delete": { name: "Delete", icon: "delete" }, 
         "sep1": "---------", 
         "quit": { name: "Quit", icon: "quit" } 
        } 
       }); 

       $('.context-menu-one').on('click', function (e) 
       { 
        alert('clicked', this); 
       }) 
      }); 

我嘗試了兩種方法來開火,但我無法使它工作。 $('.context-menu-one').trigger('click'); 或 $('.context-menu-one').click();

是否有一種特殊的方法在選擇器上觸發。我想這是在某處解釋,但我的搜索已達到結束。

---------更新加入更多的周邊代碼-----------

//local functions 
    $(function() 
    {//override right click. 

     $(this).bind("contextmenu", function (e) 
     { 
      alert(1);// users right clicked 
      var overRide = true; 

      //set up the right click menu 
      $(function() 
      { 
       $.contextMenu({ 
        selector: '.context-menu-one', 
        callback: function (key, options) 
        { 
         var m = "clicked: " + key; 
         window.console && console.log(m) || alert(m); 
        }, 
        items: { 
         "edit": { name: "Edit", icon: "edit" }, 
         "cut": { name: "Cut", icon: "cut" }, 
         "copy": { name: "Copy", icon: "copy" }, 
         "paste": { name: "Paste", icon: "paste" }, 
         "delete": { name: "Delete", icon: "delete" }, 
         "sep1": "---------", 
         "quit": { name: "Quit", icon: "quit" } 
        } 
       }); 

       $('.context-menu-one').on('click', function (e) 
       { 
        alert('clicked', this); 
       }) 
      }); 

      //bring up the menu 
      $('.context-menu-one').trigger({ 
       type: 'mousedown', 
       which: 1 
      }); 

      if (overRide) e.preventDefault(); 
     }); 
    }); 

這裏我的目的很簡單,就是觸發右鍵,這樣菜單不是基於事件手動顯示。

+0

請問你的HTML「上下文菜單 - 一個」看?你想在哪裏觸發點擊? – mareckmareck

+0

剛剛在上面添加了一個編輯,我希望它在剛建好之後觸發。我已經抓住了我的右鍵,然後我建立了我的菜單,只是不能讓它出現。 –

回答

0

基於從文檔demo獲取的文檔。下面的示例等待文件加載和1秒的延遲後通過程序打開上下文菜單:

<body> 
    <div class="dummyDiv box menu-1"/> 
</body> 
<script> 
$(function(){ 
    $.contextMenu({ 
     selector: '.dummyDiv', 
     trigger: 'none', 
     items: { 
      "edit": {name: "Edit", icon: "edit"}, 
      "cut": {name: "Cut", icon: "cut"}, 
      "copy": {name: "Copy", icon: "copy"}, 
      "paste": {name: "Paste", icon: "paste"}, 
      "delete": {name: "Delete", icon: "delete"}, 
      "sep1": "---------", 
      "quit": {name: "Quit", icon: "quit"} 
     } 
    }); 

    setTimeout(function(){ 
     $('.dummyDiv').contextMenu(); 
    }, 1000);  
}); 
</script> 
+1

我認爲這是我以上的嘗試? $('.context-menu-one').click(); –

+0

尋找你最近的編輯 –

+0

我想我沒有好好解釋自己。我想以編程方式觸發菜單出現。我「認爲」這樣做,我需要在'.context-menu-one'選擇器上觸發回調。我試圖使用這個事件的想法,然後調用該事件,但它仍然不會彈出菜單或警報「CLICKED!」。 –

0

嘗試triggering它由:

$('.context-menu-one').trigger({ 
    type: 'mousedown', 
    which: 1 
}); 
+0

沒有工作,在這種情況下,我認爲點擊是一個正確的點擊,將鼠標停下來的工作呢? –

+0

我編輯了我的答案來模擬[event.which](http://api.jquery.com/event.which/)設置爲1的右鍵單擊,應該使用鼠標操作。 – chridam

+0

仍然沒有骰子,我在上面添加了更多代碼,也許我的問題更多 –