Jquery 避免在视图的OnClick事件上回发
我有以下两种看法: Index.cshtmlJquery 避免在视图的OnClick事件上回发,jquery,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,partial-views,Jquery,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,Partial Views,我有以下两种看法: Index.cshtml <p> @Html.ActionLink("Create New", "Create", "Owner ", new { id = "lnkCreate" }) </p> @section JavaScript { <script type="text/javascript" src="@Url.Content("/Scripts/Owner.js")"></
<p>
@Html.ActionLink("Create New", "Create", "Owner ", new { id = "lnkCreate" })
</p>
@section JavaScript {
<script type="text/javascript" src="@Url.Content("/Scripts/Owner.js")"></script>
}
我想做到的是,每当我点击“创建新”链接时,它就按照编码工作,没有任何回发。但当我单击同一控制器下不同视图的“返回”链接时,它正在执行回发,而不会像脚本代码中所写的那样单击事件。尝试以下操作:
$(document).ready(function () {
function bindClicks(){
$('#lnkBack').click(function (e) {
// alert('hello')
e.preventDefault();
$.ajax({
url: '/Owner/Index',
dataType: "html",
success: function (data) {
//$('#divContent').hide();
//$('#divGrid').html(data);
bindClicks();
}
});
});
$('#lnkCreate').click(function (e) {
e.preventDefault();
$.ajax({
url: '/Owner/Create',
dataType: "html",
success: function (data) {
// $('#divGrid').hide();
// $('#divContent').html(data);
bindClicks();
}
});
});
}
bindClicks();
});
基本上,在通过ajax获取内容后,需要重新绑定click()功能
加载页面时运行的jQuery函数与通过ajax添加的任何新内容无关。每次在页面上添加新内容时,都必须再次运行相同的函数(如果该内容具有一些jQuery功能,如单击绑定)。ajax“成功”(新内容已完全添加到页面中)是一个很好的选择。尝试以下方法:
$(document).ready(function () {
function bindClicks(){
$('#lnkBack').click(function (e) {
// alert('hello')
e.preventDefault();
$.ajax({
url: '/Owner/Index',
dataType: "html",
success: function (data) {
//$('#divContent').hide();
//$('#divGrid').html(data);
bindClicks();
}
});
});
$('#lnkCreate').click(function (e) {
e.preventDefault();
$.ajax({
url: '/Owner/Create',
dataType: "html",
success: function (data) {
// $('#divGrid').hide();
// $('#divContent').html(data);
bindClicks();
}
});
});
}
bindClicks();
});
基本上,在通过ajax获取内容后,需要重新绑定click()功能
加载页面时运行的jQuery函数与通过ajax添加的任何新内容无关。每次在页面上添加新内容时,都必须再次运行相同的函数(如果该内容具有一些jQuery功能,如单击绑定)。ajax“成功”(新内容完全添加到页面中)创建带有空HREF的操作链接。这不是问题,但我建议您检查生成的html=您使用了错误的
html.ActionLink()
@Sippy重载的html谢谢。。你能详细告诉我你在说什么吗。@StephenMuecke我已经检查了呈现的html,但它显示了我为反向链接设置的正确id。。我希望我没有弄错。是的,它添加了id
属性,但是看看href
属性-它可能以/…?length=6
之类的内容结尾(正如我说的,这不是问题,因为你在脚本中重新创建了url)创建带有空href的操作链接。不是问题,但是我建议您检查一下html,您的生成=您使用了错误的html.ActionLink()
@Sippy重载,谢谢。。你能详细告诉我你在说什么吗。@StephenMuecke我已经检查了呈现的html,但它显示了我为反向链接设置的正确id。。我希望我没有弄错。是的,它添加了id
属性,但是看看href
属性-它的结尾可能类似于/…?length=6
(正如我所说,这不是问题,因为您在脚本中重新创建了url)
$(document).ready(function () {
function bindClicks(){
$('#lnkBack').click(function (e) {
// alert('hello')
e.preventDefault();
$.ajax({
url: '/Owner/Index',
dataType: "html",
success: function (data) {
//$('#divContent').hide();
//$('#divGrid').html(data);
bindClicks();
}
});
});
$('#lnkCreate').click(function (e) {
e.preventDefault();
$.ajax({
url: '/Owner/Create',
dataType: "html",
success: function (data) {
// $('#divGrid').hide();
// $('#divContent').html(data);
bindClicks();
}
});
});
}
bindClicks();
});