详解discuz 之 *_ctrl_menu

默认的html中的select标签默认的样式太一般了。discuz提供了一个自动将select转换成一个js的select函数。
原理是将select隐藏,在原位置生成一个标签,对应的,当点击时,显示对应生成的

形式的新列表。这个看起来就好看多啦。


方法原js:staticjscommon.js
 
方法名:function simulateSelect(selectId, widthvalue)
 

只需将当前的select的id放入该函数。如:simulateSelect(‘types’),就生成了。

显示和隐藏菜单的方法是:function showMenu(v)

隐藏菜单的方法是:function hideMenu(attr, mtype)

这两个方法主要通过JSMENU[‘active’] 进行关联(也就是说可以多个),在显示时,插入数据,在不显示时,再从集合中删除数据。

如何实现动态的显示这个菜单插件?

因为生成只要套方法,是很容易的。

但是动态生成时,得注意几个东西。

1.discuz中,该东西是以一次执行为前提的。即是,一个select只能执行一次,多次执行转换是不成功的。

2.注要问题是相关的id重复,导致相关的事件对象异常。

知道原因的问题,现在好处理啦。

只要在执行前将原对象抹杀,数据清除就ok了。

如有不懂。可以查看martoo.cn的发贴。

转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827

发表评论

电子邮件地址不会被公开。 必填项已用*标注