2014-08-29 4 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

Я не понимаю ваш вопрос –

+0

Дерек проверить мою скрипку, щелкните правой кнопкой мыши на DIV он откроется небольшое меню ... я хочу, чтобы сделать это через меню массива .. (но в скрипка, которую вы можете видеть, она жестко запрограммирована) –

ответ

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

ты отличный парень .. !! действительно, это делает мой день спасибо ... !!! –

+1

Да, это возможно. В этом случае вам нужно создать массив имен функций и использовать массив внутри каждого в некотором смысле как 'onclick: function {functionname [i]}' где functionname - это массив, содержащий имена функций. Не пробовал это. Вы можете попробовать. Если необходимо, обратитесь за помощью, но перед тем, пожалуйста, попробуйте сами. –

+0

Спасибо, что «ты отличный парень .. !! действительно это заставляет мой день благодарить ... !!!» –

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 за хороший ответ .. –