首页 > 代码库 > 解决discuz与jquery不兼容问题——下拉列表不能用(Uncaught TypeError: Cannot set property 'position' of undefined)

解决discuz与jquery不兼容问题——下拉列表不能用(Uncaught TypeError: Cannot set property 'position' of undefined)

问题描述:

最近学着用discuz来模仿一个门户网站,里面要把导航条做出滑动效果,要用到jquery,将要用到jquery引用到header.htm中,如下图所示:

技术分享

但是由于discuz采用php以及本身的机制,jquery中的$会与discuz本身的common.js和forum.js产生冲突,会出现如下的错误导致下拉列表

技术分享

解决办法:

解决思路:将jquery的$重新定义一下,比如我门将用jq代表jquery的$

在jquery-1.7.2.js的末尾加上一句如下代码:

var jq = $.noConflict();//使用 noConflict() 方法为 jQuery 变量规定新的名称

如图所示:

技术分享

因为我header.htm中也用了$,将其改成jq,如下所示:

技术分享

同时要将引用到的其他js中的$改成jq,改动jquery.movebg.js文件如下图所示:

 技术分享

这样问题就解决了,如下图所示:

技术分享

 

解决discuz与jquery不兼容问题——下拉列表不能用(Uncaught TypeError: Cannot set property 'position' of undefined)