我在登录后尝试在标题中为“我的帐户”添加一个jquery下拉列表(尝试用户名测试和密码测试@ 123),但我一直收到此错误:
未捕获的TypeError:无法调用null
的方法'dropit'我甚至感动:
<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function () {
$('#myaccountmenu').dropit();
});
</script>
在页脚之前到底部,无济于事。有什么想法吗?
答案 0 :(得分:0)
首先,您正在调用jQuery.noConflict(),它会释放对全局$
变量的引用。您必须使用jQuery
或其他变量来访问jQuery对象。
<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function () {
jQuery('#myaccountmenu').dropit();
});
</script>
其次,我查看了您正在处理的页面,并进行了搜索,但没有ID "myaccountmenu"
的元素。要么您有错误的ID,要么必须在其他地方动态生成元素。如果是这种情况,您需要确保在创建元素后运行代码。
答案 1 :(得分:0)
现在我有时间看你的页面了。
正如我在评论中已经提到的,您在页面上加载了另一个使用$
的库( prototype )。
由于 prototype 是在您调用noConflict
的jQuery版本之前加载的,因此$
将恢复为 prototype 。
因此您需要将其更改为jQuery('#myaccountmenu').dropit();
但是只有更改此代码才能使代码运行,然后您将收到错误dropit is not defined
,因为您加载了两个jQuery版本。
一个在注册插件的 prototype (1.8.0版本)之前,然后是1.9.1
(实际加载两次)。这将覆盖插件注册的1.8.0
版本。
使用不同的库可能会导致内存泄漏。加载jQuery(即使它是相同版本)多个也可能导致内存泄漏以及意外行为(无法正确传播的事件,......)