2010-12-01 10 views
0

私のスクリプト内の何かがIEを壊しています。jQuery.ajaxがIE7/8で動作しない

私はクラスとのリンク集を探していて、URLをハイジャックしています。 リンクをクリックすると高さがアニメートされ、メッセージが表示されます。また、 は、メッセージを読み取りとしてマークするためのajax要求を行います。

しかし、IEでは、ページにとどまってHTTPリクエストを処理するのではなく、単にURLに行きます。

$('.message .subject .subject_link').click(function(e) { 

    toggle_message(e) 
    return false; 

}); 


function toggle_message(m) { 

var link = m.target; 
var parent = $(link).parent().parent(); 
console.log(link.href); 
$.ajaxSetup({ 

    url: link.href, 
    dataType: 'json', 
    timeout: 63000, 
    type: 'GET', 
    cache: false 

}); 

if($(parent).hasClass('unread')) { 

    $(parent).addClass('read').removeClass('unread'); 

    $.ajax({ 

     complete: function(r, textStatus) { 
      console.log(r.responseText) 
     } 

    }); 

} 

if($(parent).find('.body_wrapper').hasClass('collapsed')) { 
    $(parent).find('.body_wrapper').addClass('expanded').removeClass('collapsed'); 
    $(parent).find('.body_wrapper').animate({ 
      height: 'toggle' 
    }) 
} else { 
    $(parent).find('.body_wrapper').addClass('collapsed').removeClass('expanded'); 
    $(parent).find('.body_wrapper').animate({ 
      height: 'toggle' 
    }) 
} 

}

この問題を引き起こしているものの任意のアイデア? http://support.cooper.krd-design.net/ テスター:12345あなたは

おかげ リッチ

+0

クラップス。見つけた。 –

+0

IEはconsole.logを使用していません –

+0

@RabidFireはこれにちょうど答えました。あまりにもそれが削除された悪い! –

答えて

0

ページを確認したい場合は最初の関数でtoggle_message前

e.preventDefault();

を追加すると、復帰はfalseが、動作するはずです同様にしなければならない。

0

私は今、IEへのアクセス権を持っていないが、私は、あなたのクリック()に発射するデフォルトのクリックイベントを防止しようとすることができ考える - そのような関数:.preventDefault(上

$('.message .subject .subject_link').click(function(e) { 
    toggle_message(e) 
    e.preventDefault(); 
}); 

詳細)ここに:http://api.jquery.com/event.preventDefault/

+0

あなたは私にそれを打つ! =) – cpak

+0

私はそれを加えて、何かが襲ってくるのを防ぐためにも追加します。 –

関連する問題