IE8中的jQuery / Mootools问题

时间:2012-01-20 22:51:05

标签: javascript jquery internet-explorer mootools

我正在开发一个同时运行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();
});

1 个答案:

答案 0 :(得分:1)

你的小提琴有两个问题:

  1. 当你这样做时,你应该使用jQuery.noConflict();,而不是$.noConflict();

  2. MooTools可以在IE中原型级增强DOM元素,就像在其他浏览器中一样,所以你必须始终确保通过$()document.id()传递它们在使用MooTools特定功能之前。所以这一行失败了:

    document.getElementById('tester').hide();
    

    ...因为DOM元素没有hide方法。相反,只需使用$()document.id()

    $('tester').hide();
    document.id('tester').hide();
    

    ...将查找元素扩展它。

  3. Updated fiddle