IE6不喜欢我的简单jQuery:任何想法为什么?

时间:2010-07-27 00:27:47

标签: jquery cross-browser internet-explorer-6

以下jQuery用于顶部有消息的页面,以及回复其下方消息的所有注释。代码在IE8 / Chrome / Firefox上运行的方式是“折叠”初始消息之下的所有注释,因此只显示其主题。单击他们的主题然后用初始消息替换该评论(即它“伪造”在其自己的页面上进行每个评论的动作)。

问题是IE6拒绝使用代码;当IE6访问者登陆页面时,所有评论都拒绝崩溃,点击标题不会做任何事情。

有没有人知道如何纠正这个问题以使JS ie6兼容?

function flip(comment) {
$('#first-post').replaceWith(comment.closest(".comment").clone().attr('id','first-post'));
$('#first-post').children('.forumthreadtitle').children('.comment-info').empty();
$('#first-post').find(':hidden').fadeIn('slow');
$('html, body').animate({scrollTop:0}, 'fast');
return false;
}

$(document).ready(
function(){ 

$('.submitted').each(function() {
$(this).clone().addClass('comment-info').appendTo($(this).siblings('.forumthreadtitle'));
if(!$(this).parent('#first-post').html()) {
    $('#first-post').children('span.taxonomy').clone().appendTo($(this));
    }
});

$('.display_mode').html('Show All Replies');
expandedMode = false;
$('.display_mode').click(function() {
    if ( expandedMode  == false  ) {
        $('.forumthreadtitle').siblings().show(); 
        $(this).html('Collapse Replies');
        expandedMode  = true;
        }
    else
        {
        $('.forumthreadtitle').siblings().hide();
        $(this).html('Show All Replies');
        expandedMode = false; 
        }
    });

$('.forumthreadtitle').siblings().hide();

if(window.location.hash) {
        flip($(window.location.hash).next().children('.forumthreadtitle').show());
        }

$('.forumthreadtitle').click(function() { 
    pageTracker._trackPageview("/comment?page=" + document.location.pathname);
    flip($(this)); 
    } );
});

以下是一些示例HTML(试图简化它以使其更容易理解):

<DIV id="first-post">
       <H2 class="title"><A href="test.html">TEST</A></H2>
      <SPAN class="submitted">Submitted by Big J on July 26, 2010 - 3:26pm</SPAN> 
  <DIV class="content">First Post</DIV>
</DIV>

<DIV id="comments">
  <A id="comment-1643951"></A>
<DIV class="comment comment-published clear-block">
  <H3 class="forumthreadtitle"><A href="test.html#comment-1643951" class="active">Test Reply....</A>
  <DIV class="submitted comment-info">Submitted by test on July 26, 2010 - 4:49pm.</DIV>
  </H3>

  <DIV class="content" style="display: none; ">
  Test Comment Content
  </DIV>
</DIV>
</DIV>

1 个答案:

答案 0 :(得分:0)

我建议你尝试两件事:

  1. 使用 jQuery(function(){})代替 $(document).ready(function(){});
  2. 将您的jQuery代码移动到HTML页面的底部。