我有一个类似的动作链接:
@html.actionlink("link", "action", "controller", new { id = item.id }
我希望此链接在外部页面上调用jQuery函数。我尝试使用onclick
,但是它总是使用默认的控制器操作方法,而@class
也是如此。
我想知道我可以这样使用它吗:
@html.actionlink("link text", null, null, new { id = item.id }, new { onclick = "myfunction() }
这仍然没有调用jQuery函数,我在做什么错了?
这是我的html超链接
@ item.ProductID.ToString()
和下面是我的jquery脚本位于外部js文件中
$(document).ready({
function showdetails(id)
{
alert("you clicked me")
});
答案 0 :(得分:0)
如果只想让它运行jQuery函数而不是转到控制器,那么使用actionLink帮助器是没有意义的-这样做的整个目的是生成带有正确URL的超链接,该URL指向action方法。相反,只需直接编写HTML链接(或按钮)并将click事件附加到它。不需要我们任何Razor代码。
类似这样的东西:
<button type="button" class="linkbutton" onclick="myfunction(@item.id)">Click here</button>
另一个错误是将函数放在$(document).ready({
块中。不必要是因为该块的想法只是在页面完成加载之前停止执行代码。使用仅从其他代码调用而不会立即执行的函数,您不必担心。并导致错误,因为这意味着您的函数仅在该块内具有作用域。无法在块外进行代码访问。
演示:
function myfunction(x)
{
alert(x);
}
.linkbutton
{
border: none;
background: none;
color: blue;
text-decoration:underline;
}
.linkbutton:hover
{
cursor:pointer;
}
<button type="button" class="linkbutton" onclick="myfunction(3)">Click here</button>