动态创建popMenu需要先引用组件的js文件如下:

var popMenu = require("$UI/system/components/justep/popMenu/popMenu");

然后就可以设置相关的参数new popMenu,但是popMenu是组合组件里面的菜单项其实是menu所以创建菜单项时要获取到menu调用相关的方法创建

menu动态创建菜单项时其实是动态创建button,需要设置点击事件要通过on的方式给按钮绑定,或者直接在创建项中设置,完整的实现如下:

	Model.prototype.button18Click = function(event) {
		var parentNode = this.getElementByXid("top1");
		var option = {
			parentNode : parentNode,
			xid : 'popMenu1',
			class : 'x-popMenu',
			anchor : 'button18',
			dismissible : true,
			autoHidable : true,
			opacity : '0.1'
		};

		var popMenu1 = new popMenu(option);//动态创建popMenu
		
		/*给popMenu动态添加菜单*/
		var menu = popMenu1.getInnerMenu().addItem({
			label : "Item",
			xid : "buttonMenu1"
		});

              /*通过on给动态添加的菜单动态绑定click事件*/
		this.comp("buttonMenu1").on("onClick", function(event) {
			alert(event.source.get('label'));
		});
		popMenu1.show();//显示popMenu
	};

直接在创建项中设置点击事件有两中方式
方式一:直接设置执行代码

		var menu = popMenu1.getInnerMenu().addItem({
			label : "Item",
			xid : "buttonMenu1",
			'onClick' : function(event){
				alert(event.source.get('label'));
			}
		});

方式二:调用model中定义的js函数
model中的函数定义如下:

	Model.prototype.test1 = function(event){
	  alert(event.source.get('label'));
	}

给popMenu动态添加菜单如下:

		var menu = popMenu1.getInnerMenu().addItem({
			label : "Item",
			xid : "buttonMenu1",
			'onClick' : this.test1
		});