jquery在IE6中不起作用

时间:2011-09-07 04:14:46

标签: javascript jquery

我在jquery中开发了一个下拉类别和子类别菜单。该脚本适用于Firefox,Chrome但不适用于IE6。你能指导我解决这个问题吗

<script type="text/javascript">
$(document).ready(function() {
    $('#loader').hide();
    $('#show_heading').hide();
    $('#search_category_id').change(function() {
        $('#show_sub_categories').fadeOut();
        $('#loader').show();
        $.post("get_chid_categories.php",
               {
                   parent_id: $('#search_category_id').val(),
               },
               function(response) {
                    setTimeout("finishAjax('show_sub_categories', '"+escape(response)+"')", 400);
               }
        );
        return false;
    });
});

function finishAjax(id, response){
    $('#loader').hide();
    $('#show_heading').show();
    $('#'+id).html(unescape(response));
    $('#'+id).fadeIn();
} 

function alert_id() {
    if($('#sub_category_id').val() == '')
        alert('Please select a sub category.');
    else
        alert($('#sub_category_id').val());
    return false;
}
</script>

3 个答案:

答案 0 :(得分:3)

正如其他人所说,您需要指定错误是什么以及错误发生的位置(即IE给您的错误消息)。

如果您格式化代码以使其更具可读性,我认为您会发现语法错误:

$(document).ready(function() {
  $('#loader').hide();
  $('#show_heading').hide();
  $('#search_category_id').change(function(){
  $('#show_sub_categories').fadeOut();
  $('#loader').show();

  $.post("get_chid_categories.php",
    {
      parent_id: $('#search_category_id').val(),
    },
    function(response){
      setTimeout("finishAjax('show_sub_categories', '" +
                  escape(response) +
                  "')",
      400);
    }
  );
  return false;
});
});  // <-- that is extra

function finishAjax(id, response) {
  $('#loader').hide();
  $('#show_heading').show();
  $('#'+id).html(unescape(response));
  $('#'+id).fadeIn();
} 

function alert_id() {
  if ($('#sub_category_id').val() == '') {
    alert('Please select a sub category.');

  } else {
    alert($('#sub_category_id').val());
  }
  return false;
} 

答案 1 :(得分:1)

您已声明doc-type?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

您的HTML可能不正确。这可能是一个HTML问题。

请提供您的HTML。

答案 2 :(得分:1)

在setTimeout中删除了escape | unescape和eval。

<script type="text/javascript">
$(document).ready(function() {
    $('#loader').hide();
    $('#show_heading').hide();
    $('#search_category_id').change(function() {
        $('#show_sub_categories').fadeOut();
        $('#loader').show();
        $.post("get_chid_categories.php",
               {
                   parent_id: $('#search_category_id').val(),
               },
               function(response) {
                    // CHANGED
                    var f=function(){finishAjax('show_sub_categories',response);};
                    setTimeout(f, 400);
               }
        );
        return false;
    });
});

function finishAjax(id, response){
    $('#loader').hide();
    $('#show_heading').show();
    // CHANGED
    $('#'+id).html(response);
    $('#'+id).fadeIn();
} 

function alert_id() {
    if($('#sub_category_id').val() == '')
        alert('Please select a sub category.');
    else
        alert($('#sub_category_id').val());
    return false;
}
</script>