2014-08-29 25 views
0

這是我的代碼,它在不使用數組的情況下完美工作,並在div上創建上下文菜單,但現在我想從數組創建一些上下文菜單項。當我應用數組時,它將在一行中顯示數組的所有項目,並用逗號(,)分隔。但我需要不同行中的所有項目。Jquery使用數組創建上下文菜單

http://jsfiddle.net/danial786zz/sobnwgeb/這個小提琴工作完美,但我需要從數組。

$('#div_id").chromeContext({ 
items: [ 

     { title: array,   onclick: function() { RToTb(array_name) } }, 
     { title: 'properties' onclick: function() { abc();   } }, 
     { title: 'view'   onclick: function() { def();   } } 

    ] 

});

+1

我不明白你的問題 – 2014-08-29 06:12:19

+0

德里克檢查我的小提琴,用鼠標右鍵單擊一個div它會打開小菜單...我想使通過陣列..這菜單(但在一個小提琴,你可以看到它是硬編碼) – 2014-08-29 06:27:16

回答

2

我認爲這會爲你工作:

我已經創建了一個數組出另一個陣列和使用,在上下文菜單。

$(function(){ 
    var arr = ['1st Row', '2nd Row', '3rd Row']; 
    var menuitems = []; 
    $.each(arr, function(index, value) { 
     menuitems[index] = { title: value, onclick: function() { RToTb(array_name) }}; 
    }); 

    $('#div_id').chromeContext({ 
     items : menuitems 
    }); 
}); 

FIDDLE

+0

你是偉大的人..!真的讓我的一天感謝... !!! – 2014-08-29 07:18:15

+1

是的,這是可能的。在這種情況下,您必須創建一組函數名稱,並在每個函數名稱中使用數組,其中的函數名稱類似於 'onclick:function {functionname [i]}',其中functionname是包含函數名稱的數組。沒有試過這個。你可以試試看。如果需要,請諮詢幫助,但在此之前請先自己嘗試。 – 2014-08-29 07:19:38

+0

謝謝你「你是個好人...... !!真的讓我的一天感謝...... !!!」 – 2014-08-29 07:20:17

0

這是關於你的數組定義。每個數組元素中應該有對象。

$(function(){ 
    var arr=[]; 
    arr[0]= { 'title': '1st row', 'onclick:': function() { RToTb(array_name); } }; 
    arr[1]={ 'title': '2st row', 'onclick:': function() { RToTb(array_name); }}; 
    arr[2]={ 'title': '3st row', 'onclick:': function() { RToTb(array_name); }}; 


    $('#div_id').chromeContext({ 
     items: arr 
    }); 
}); 

檢查下面的工作實例鏈接: http://jsfiddle.net/v7v8f386/1/

+1

非常感謝.. Madcoe很好的答案.. – 2014-08-29 07:27:21

相關問題