JSFiddle - React, Tailwind, and code Playground

JavaScript

var json = [
    {"title": "Title1", "param": "param1", "subMenu": [
        {"title": "SubTitle1", "param": "param1-1"},
        {"title": "SubTitle2", "param": "param1-2", "subMenu": [
            {"title": "SubSubTitle1", "param": "param1-1-1"},
            {"title": "SubSubTitle2", "param": "param1-1-2"},
            {"title": "SubSubTitle2", "param": "param1-1-3"}
        ]}
    ]},
    {"title": "Title2", "param": "param2"},
    {"title": "Title3", "param": "param3"}
];

var myfunc = function(param) {
    alert(param);
};

function makeList(array, root){
    if(typeof root === 'undefined'){
        root = $('body');
    }
    var ul = $("<ul></ul>");
    root.append(ul);
	for (var i = 0; i < array.length; i++) {
		var li = $("<li></li>");
		ul.append(li);
		var a = $("<a href='#' data-param='" + array[i].param + "'>" + array[i].title + "</a>");
		li.append(a);
		a.click(function() {
			alert($(this).data("param"));
		});
		
		if(typeof array[i].subMenu !== 'undefined'){
			 makeList(array[i].subMenu, li);
		}
	}
}
makeList(json);