2

クレイジーな薬を飲んでいるような気がします。手元の問題を解決することに頭を悩ませようとしていますが、最終的にIE7はjqueryの「slideDown」および「slideup」関数を適切に使用しません。

他のすべてのブラウザは動作します。私の最初の理論は、.focusにある問題です(つまり、認識しないため)。機能を.clickに切り替えても、機能しません。

今夜私の命を救ってください。

<script type="text/javascript">
$(function()
{
    $("#message").click(function() {
        $(this).animate({"height": "85px",}, "fast" );
        $("#button_block").slideDown("fast");
        return false;
    });

    $("#cancel").click(function() {
        $("#message").animate({"height": "30px",}, "fast" );
        $("#button_block").slideUp("fast");
    return false;
    });

    $("#submit").click(function() {
        $("#message").animate({"height": "30px",}, "fast" );
        $("#button_block").slideUp("fast");
    return false;
    }); 

});

</script>

リクエストされたHTMLスニペット

<div id="shout"></div>


<form method="post" action="shout.php">
   <textarea id="message" name="message" class="message" value="enter text here"></textarea>
                <div id="button_block" style="padding:0 0 15px;">
                    <input type="submit" id="submit" value="Submit"/>
                    <input type="submit" id="cancel" value="Cancel" />
                </div>
</form>

さらに、このファイルの上に作成された「shoutbox」は、ie7でも機能しません(他のブラウザーでは問題なく機能します)。そのためのコードは次のとおりです。

<script type="text/javascript">
$(function() {

    refresh_shoutbox();
    setInterval("refresh_shoutbox()", 15000);

    $("#submit").click(function() {
        var name    = $("#name").val();
        var message = $("#message").val();
        var data            = 'name='+ name +'&message='+ message;

        $.ajax({
            type: "POST",
            url: "shout.php",
            data: data,
            success: function(html){
                $("#shout").slideToggle(500, function(){
                    $(this).html(html).slideToggle(500);
                    $("#shout").val("");
                });
          }
        });    
        return false;
    });
});

function refresh_shoutbox() {
    var data = 'refresh=1';

    $.ajax({
            type: "POST",
            url: "shout.php",
            data: data,
            success: function(html){
                $("#shout").html(html);
            }
        });
}

</script>
4

2 に答える 2

4

IE7で、キーと値のペアの末尾のコンマに問題があったことを覚えているようです。余分なコンマを削除して、役立つかどうかを確認します。

から:

$(this).animate({"height": "85px",}, "fast" );

に:

$(this).animate({"height": "85px"}, "fast" );
于 2010-11-02T00:34:16.570 に答える
1

スライドアップ/スライドダウンをanimateメソッドからのコールバックとして実行してみましたか?

例えば:

$("#message").click(function() {
        $(this).animate({"height": "85px",}, "fast", function() {
          $("#button_block").slideDown("fast");
        });        
        return false;
});

slideDown / Upが呼び出されたときに高さが取得されていないため、IEで問題が発生している可能性があります。

于 2010-11-02T00:11:13.423 に答える