我正在开发一个同时运行Mootools 1.4和jQuery 1.5.1的页面。我知道这不理想,但我真的没有选择。该页面在大多数浏览器中都可以正常工作,但在IE8中则不行。我收到以下错误:
Object doesn't support this property or method
尝试添加click事件时,尽管将我的jQuery特定代码放在noConflict块中。这是一个重现问题的小提琴:http://jsfiddle.net/p7rFV/1/
感谢有关正在发生的事情的任何想法。
$.noConflict();
jQuery(document).ready(function($) {
// Code that uses jQuery's $ can follow here.
});
document.getElementById('button').addEvent('click', function(){
document.getElementById('tester').hide();
});
答案 0 :(得分:1)
你的小提琴有两个问题:
当你这样做时,你应该使用jQuery.noConflict();
,而不是$.noConflict();
MooTools可以在IE中原型级增强DOM元素,就像在其他浏览器中一样,所以你必须始终确保通过$()
或document.id()
传递它们在使用MooTools特定功能之前。所以这一行失败了:
document.getElementById('tester').hide();
...因为DOM元素没有hide
方法。相反,只需使用$()
或document.id()
:
$('tester').hide();
document.id('tester').hide();
...将查找元素和扩展它。