正如我所说的另一篇文章,我对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
'replace'位于jquery1.6.2.min.js内。我假设这与我如何设置popupDiv的top属性有关。有什么建议吗?
答案 0 :(得分:2)
函数必须是全局函数,因此请将其放在ready
之外:
/*$(document).ready(function() {
});*/
function updatePos(popupDiv) {
var top = $('#selected_row').offset().top;
$(popupDiv).css({ top: top + "px" }).show();
}
在您的情况下无需使用$(document).ready
答案 1 :(得分: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>