クレイジーな薬を飲んでいるような気がします。手元の問題を解決することに頭を悩ませようとしていますが、最終的に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>