jQuery 1.3.2 insertBefore не работает в IE8

У меня есть список с несколькими строками, и в каждом списке есть кнопка добавления и редактирования, которая вызывает форму с помощью;


$('#addOrEditForm').insertBefore("#"+rowId); 

Есть идеи, почему это работает в любом другом браузере, кроме IE8? мы используем jQuery 1.3.2.

Спасибо.


ЛЮБЫЕ ОБНОВЛЕНИЯ ПО ЭТОМУ

Это просто чрезмерное упрощение кода, который воспроизводит проблему, с которой я столкнулся при вставке перед использованием ТОЛЬКО IE8. просто скопируйте и вставьте весь этот код в тестовый файл, затем измените

 <script type="text/javascript" src="/Library/jQuery/jquery.min.js">    </script>

использовать вашу библиотеку jquery 1.3.2. и это должно работать!

Спасибо.

<html>
<head>

<title>Insert title here    </title>

<script type="text/javascript" src="/Library/jQuery/jquery.min.js">    </script>
<script>

$(document).ready(function() {

    $('#linkListLinkOutput').click(function(event) {
          if ($(event.target).parents('tr').attr('id')) {
              var link = $(event.target).parents('tr').attr('id').split('_');
          }

          if ($(event.target).hasClass('nav_new')) {
          removeAddAndEditLinkForms();
          showAddLinkForm($(event.target).parents('tr').attr('id'), link[2], link[3]);
          return false;
        }
      return false;
     });



  function removeAddAndEditLinkForms() {
    removeAddLinkForm();
  }

  function removeAddLinkForm() {
        $('#addLinkListLink')
          .hide()
          .appendTo('#linkListLinks');
    }

    function showAddLinkForm(link, parentId, position) {
      $('#addLinkListLink form input[name="parentId"]').attr('value', parentId);
      $('#addLinkListLink form input[name="position"]').attr('value', position);
      $('#addLinkListLink')
        .insertBefore( "#" + link )
        .fadeIn();
      console.log('Link List name: ' + $('#addLinkListLink').attr('id'));
    }

});


</script>
</head>
<body>

<div id="content">
<div id="statusMessage"/>
<div id="linkListLinkOutput">
<table class="hierarchical widthFull" id="linkListLinks" border=1>
<tbody>
<tr class="head">
<th>Name    </th>
<th>Link    </th>
<th>Image    </th>
<th style="width: 75px;">Options    </th>
</tr>
<tr id="1678_6_0_1">
<td style="padding-left: 40px;" class="level1">    <a class="nav_down" href="#">Down    </a> Worship Net    </td>
<td>None    </td>
<td>Beautiful Sky: beautiful-sky.jpg    </td>
<td>    <a title="Add a link at this position" class="nav_new" href="#">Add    </a>     <a title="Edit is not functional in this example" >Edit    </a>     <a title="Delete is not functional in this example" >Delete    </a>    </td>
</tr>
<tr id="4159_6_0_2">
<td style="padding-left: 40px;" class="level1">    <a class="nav_up" href="#">Up    </a>     <a class="nav_down" href="#">Down    </a> many many many links    </td>
<td>None    </td>
<td>None    </td>
<td>    <a title="Add a link at this position" class="nav_new" href="#">Add    </a>     <a title="Edit is not functional in this example" >Edit    </a>     <a title="Delete is not functional in this example" >Delete    </a>    </td>
</tr>
<tr id="4161_6_0_10">
<td style="padding-left: 40px;" class="level1">    <a class="nav_up" href="#">Up    </a> MOre and more links    </td>
<td>None    </td>
<td>None    </td>
<td>    <a title="Add a link at this position" class="nav_new" href="#">Add    </a>     <a title="Edit is not functional in this example" >Edit    </a>     <a title="Delete is not functional in this example" >Delete    </a>    </td>
</tr>
<tr style="display: none;" id="addLinkListLink">
<td colspan="4">

<form method="post" action="Capture.php" class="tempForm" id="addLinkListLinkForm" name="addLinkListLinkForm">
<table>    <tbody>    <tr>    <th>    <label for="name">Name:    </label>    </th>    <td>    <input type="text" value="" maxlength="255" id="name" name="name"/>    </td>    </tr>
<tr>    <th>    <label for="text">Description:    </label>    </th>    <td>    <textarea id="text" name="text"/>     </textarea>    </td>    </tr>    </tbody>    </table>    <input type="submit" value="Save" name="saveButton" class="blah"/>    <input type="submit" value="Cancel" name="cancelButton" class="blah cancel"/>    <input type="hidden" value="0" name="parentId"/>    <input type="hidden" value="6" name="listId"/>    <input type="hidden" value="1" name="position"/>
</form>

</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</body>
</html>

person Onema    schedule 05.10.2009    source источник
comment
Вы уверены, что проблема не возникла раньше? Правильно ли установлена ​​ваша переменная rowId?   -  person John Fisher    schedule 05.10.2009
comment
Да, это так. Я занимаюсь отладкой уже некоторое время. идентификатор строки правильный   -  person Onema    schedule 05.10.2009
comment
Также проверьте, что $('#addOrEditForm') и #+rowId действительно соответствуют элементам: alert($('#addOrEditForm').length); оповещение($('#'+rowId).length);   -  person Lance Rushing    schedule 05.10.2009
comment
если бы вы могли опубликовать образец html + javascript (урезанный до минимума, необходимого для воспроизведения), это помогло бы   -  person Kip    schedule 05.10.2009
comment
Я только что добавил код в ответ ниже. спасибо за помощь   -  person Onema    schedule 05.10.2009


Ответы (1)


Кажется, что fadeIn не работает, попробуйте показать:

$('#addLinkListLink')
        .insertBefore( "#" + link )
        .show();

Я сузил его до этого:

<table>
        <tr id="tr1"><td>3</td></tr>
        <tr id="tr2" style="display:none"><td>2</td></tr>
    </table>

    <script type="text/javascript">
        $('#tr2').fadeIn();
    </script>

теперь это будет работать в ie.

см. здесь: jQuery: FadeOut не работает со строками таблицы

person Daniel    schedule 16.11.2010