2

我觉得我正在服用疯狂的药丸。即将失去解决手头问题的想法,但最终 IE7 并没有按应有的方式使用 jquery 'slideDown' 和 'slideup' 功能。

所有其他浏览器都可以工作。我最初的理论是 .focus 的问题(因为 ie 无法识别)。当我将功能切换到 .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

I seem to remember IE7 having issues with trailing commas on key value pairs. I would try removing the extra commas as see if it helps.

from:

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

to:

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

您是否尝试过将 slideUp/slideDown 作为 animate 方法的回调运行?

例如:

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

IE 可能遇到问题,因为在调用 slideDown/Up 时高度没有被占用。

于 2010-11-02T00:11:13.423 回答