2009-10-05 91 views
2

我有一個包含多行的列表,每個列表都有一個添加和編輯按鈕,可以調出一個表單;jQuery 1.3.2 insertBefore無法在IE8中工作


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

任何想法,爲什麼這可以在任何其他瀏覽器,但IE8?我們正在使用jQuery 1.3.2。

謝謝。


在這個

這是任何更新僅僅是複製了我使用IE8的insertBefore ONLY有問題的代碼過於簡單化。 只是複製而這一切的代碼粘貼到一個測試文件,然後修改

<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> 
+0

你確定前手的問題不進來?你的「rowId」變量設置是否正確? – 2009-10-05 16:51:18

+0

是的,是的。我一直在調試一段時間。 rowId是正確的 – Onema 2009-10-05 16:53:15

+2

還要檢查$('#addOrEditForm')和「#」+ rowId是否與一個元素實際匹配:alert($('#addOrEditForm')。警報($( '#' + ROWID)。長度); – 2009-10-05 16:57:34

回答

0

看來,淡入不工作與展會試試吧:

$('#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> 

這將現在在工作。

在這裏看到: jQuery :FadeOut not working with table Rows