2012-07-02 58 views
-1

作爲另一篇文章,我已經指出,我沒有太多的jQuery經驗,我對此表示歉意。我想要做的事似乎很簡單。jQuery-重新定位div onclick以對齊表格行

概述: 我有一個表格裹在一個div。在該表格中,每一行表示一個獨特的元素。我把它設置爲當每行單擊鏈接時,該元素的相應數據顯示在表格旁邊的div中。這部分工作。

我在做什麼: 我想彈出div的頂部與選定的表格行內聯顯示。

這裏是我的簡化代碼:

<div id="container" style="display:inline-block"> 
     <table> 
      <tr id="selected_row"> 
      <td> 
       <a href="/gohere" onclick="updatePos('#param_detail_container');"> 
        @Html.DisplayFor(model => item.Name) 
       </a> 
      </td> 
      </tr> 
     </table> 
    </div> 

    <div id="popupDiv" style="display:inline-block; position:absolute; "> 
     Contenet in here... 
    </div> 

腳本:

<script type="text/javascript" src="~/Scripts/jquery-1.6.2.min.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function updatePos(popupDiv) { 
      var top = $('#selected_row').offset().top; 
      popupDiv.css({ top: top + "px" }).show(); 
      }); 
    </script> 

我收到以下錯誤:

Microsoft JScript runtime error: Unable to get value of the property 'replace': object is null or undefined 

'取代' 位於jquery1.6.2.min內.js文件。我假設這與我試圖設置popupDiv的頂部屬性有關。有什麼建議麼?

回答

2

功能必須是全球性的,所以把它放在外面ready

/*$(document).ready(function() { 

});*/ 

function updatePos(popupDiv) { 
     var top = $('#selected_row').offset().top; 
     $(popupDiv).css({ top: top + "px" }).show(); 
    } 

在你的情況下,沒有必要使用$(document).ready

+0

這似乎是我需要的。現在唯一的問題是,當我點擊時,它說css不是popupDiv的有效屬性。 –

+1

這是因爲它應該是$(popupDiv).css(...) –

+0

haa好的。現在至少要做點什麼。謝謝。 –

0

讓我知道,如果這有助於。

<script type="text/javascript" src="~/Scripts/jquery-1.6.2.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
     function updatePos(popupDiv) { 
     var top = String($('#selected_row').offset().top); 
      $(popupDiv).css("top", top + "px").show(); 
     }; 
     }); 
</script> 
+0

不是我在找的東西 –