【发布时间】:2020-01-31 22:39:27
【问题描述】:
我试图在不同的地方获取同一个对象的位置,使用 javascript 函数,我应该得到不同的顶部位置,但情况并非如此。脚本代码:
<script type="text/javascript">
window.ShowAlert = function myFunction(element) {
console.log("Hello World.");
alert(element.offsetTop);
}
</script>
Index.razor 代码:
@inject IJSRuntime jsRuntime
<div>
@for (int i = 0; i < 10; i++)
{
<div @onclick="MemberFunction" @ref="memberRef">Click Here</div>
}
</div>
@code {
private ElementReference memberRef;
void MemberFunction()
{
jsRuntime.InvokeAsync<object>("ShowAlert", memberRef);
}
}
正如您在此处看到的那样,我在同一个 div 中执行for,他在此下线。我想要的是对于每个发布的div,它应该给我一个不同的offsetTop 值,因为他一个接一个地走下去。我该如何解决这个问题?
为了更好地理解这里你有一个演示 https://blazorfiddle.com/s/4g57o82k 。正如您在演示中看到的,每个 Click Here 的值都是相同的。
感谢您的关注。
【问题讨论】:
-
无论您单击哪个 div,都会在 memberRef 中传递相同的元素
-
@ControlAltDel 让我检查一下。
-
@BabarBilal 你建议做什么?
-
我偶然遇到了这个问题,并找到了通过索引的方法:blazorfiddle.com/s/50nwz2is
标签: javascript c# .net-core blazor