-1

私が作成した別の投稿で述べたように、私は jQuery の経験があまりなく、そのことをお詫びします。私がやろうとしていることはかなり単純なようです。

概要: 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 の top 属性を設定しようとしている方法と関係があると思います。助言がありますか?

4

2 に答える 2

2

関数はグローバルでなければならないので、外側に置きますready:

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

});*/

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

あなたの場合、使用する必要はありません$(document).ready

于 2012-07-02T18:00:19.757 に答える
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>
于 2012-07-02T18:01:43.850 に答える