2012-01-18 20 views
0
<script type="text/javascript" src="css/jquery-1.7.1.js"></script> 


<script type="text/javascript"> 


function slidedown(id){ 

$('#rerooftext').hide(0); 
$('#inspectiontext').hide(0); 
$('#remodelingtext').hide(0); 
$('#restorationstext').hide(0); 
$('#commtext').hide(0); 
$('#painttext').hide(0); 

setTimeout(300); 
$('#'+id.id+'text').fadeToggle(1000); 

}; 
</script> 

ここでは、テキストを含む複数のdivを非表示にし、jquery関数を使用してクリックされたリンクのdivを表示する関数があります。このコードはクロームでうまくいきますが、インターネットエクスプローラはアニメーションを実行しません。リンクをクリックすると、現在のdivを隠していますが、新しいdivを表示できません。これはコード$( '#' + id.id + 'text')。fadeToggle(1000);jqueryエフェクトがInternet Explorerで動作しない

これがどうして起こっているのでしょうか?

+2

どのバージョンのIEですか? 2.0? 6? 7? –

+0

どのようにslidedown()を呼び出しますか? – feeela

+0

関数はどのように呼び出されますか? HTMLの外観はどうですか? – Pointy

答えて

3

setTimeout(300);にコードにバグがあり、フェードアニメーションを実行する行まで実行できないためです。

setTimeoutは2つの引数をとります。最初に実行するコードを含む関数ポインタまたは文字列、2番目の引数は指定された関数またはコードを実行するまでの時間(ミリ秒単位)です。

この行は役に立たないので試してみてください。しばらくの間アニメーションを遅らせたい場合は、jQuery delayをご覧ください。

function slidedown(id){ 

    $('#rerooftext').hide(0); 
    $('#inspectiontext').hide(0); 
    $('#remodelingtext').hide(0); 
    $('#restorationstext').hide(0); 
    $('#commtext').hide(0); 
    $('#painttext').hide(0); 

    //setTimeout(300); 

    $('#'+id.id+'text').fadeToggle(1000); 

}; 
+0

IEバージョンではsetTimeout(300)は失敗しますか? – BiAiB

+0

私はすべてのIEのバージョン(少なくともIE9でテストしました)がエラー(無効な引数)であると思います。 FFでも同じようなエラーで失敗するのがわかります。しかし、 'Chrome'ではエラーを投げずに正常に動作します。 – ShankarSangoli

+0

助けてくれてありがとう! – user541597

関連する問題